viernes, 8 de abril de 2016

DEPURACIÓN DE PRUEBAS UNITARIAS EN SERVICIOS SOAP

1. Objetivo

En muchas ocasiones cuando ejecutamos nuestras Pruebas Unitarias, existen un lapso tenso tiempo entre la compilación correcta de nuestro Test y el resultado positivo del mismo. ¿Pero que hacer cuando el resultado es erróneo?, tan solo nos queda identificar donde está el error.

El código en ocasiones puede contener errores, y un depurador nos es muy útil para poder identificarlos, de modo que nos brinda una gran facilidad de ejecutarlo paso a paso para identificar los valores que van tomando las variables.

Con esta secuencia podremos depurar un Test y ejecutarlo paso a paso para identificar en que parte de nuestro código está el error.

2. Entorno

C# en Visual Studio 2015

3. Tipo de servicio

SOAP

4. Depurando nuestro Test

4.1.- Levantar el servicio
Clic derecho sobre el servicio "Clientes.svc.cs" y seleccionar Ver en Explorador







4.2.- Puntos de Interrupción
Debemos establecer dos puntos de interrupción, para esto damos clic en la parte izquierda del número de la línea, de tal modo que se ponga el punto rojo.

Ponemos uno en el inicio del Test:



y otro punto de interrupción en el Método al cual invoca el test




4.3.- Depurar el Test
Damos clic derecho sobre el Test y seleccionamos "Depurar Pruebas" y se pintará de amarillo la línea del Test






4.4.- Asociar al Servicio IIS
Seleccionamos el menú "Depurar" y luego la opción "Asocial al Proceso"




luego seleccionamos el servicio "iisexpress.exe" y le damos clic en el botón Asociar




4.5.- Inicio de depuración
Finalmente presionamos F10 para que vaya ejecutando paso a paso entre el Test y el Método. Colocando el cursor sobre las variables, podremos observar que valores van tomando.




5. Referencias:

https://msdn.microsoft.com/es-es/library/y740d9d3.aspx
https://www.visualstudio.com/es-es/products/visual-studio-community-vs.aspx
https://es.wikipedia.org/wiki/Depurador
https://www.fdi.ucm.es/profesor/luis/fp/devtools/VisualStudioDebug.html



SERVICIO REST CON DOS VARIABLES EN URI

Objetivo

El motivo de este Blog es colaborar con un servicio REST para recibir dos variables en la URI. Se desarrolla en C# sobre Visual Studio 2015.

El caso parte de buscar un Cliente, este Cliente se puede buscar por nombre, dirección o teléfono, según lo que se seleccione en el front.


1. Base de Datos:
En SQL creamos la base de datos DB_CLIENTES y luego la tabla t_clientes



2. Crear Servicio:

2.1.-  Abrir VS – Herramientas – Opciones – Editor de Texto – C## - General – Check en Números de Linea.
2.2.-  Archivo – Nuevo – Proyecto – Visual C## - WCF – Aplicación de Servicios WCF (poner ubicación conocida y nombre de la solución personal, para nuestro caso WCFClientes)
2.3.-  En Explorador de Soluciones eliminar IService1.cs y Service1.cs
2.4.-  Clic derecho sobre WCFClientes – Agregar – Nuevo Elemento – Seleccionar Visual C## - Buscar WCF – Seleccionar Servicio WCF y poner nombre plural “Clientes”.

3. Crear Clase Clientes:

3.1.-  Clic derecho sobre WCFClientes – Agregar – Nueva Carpeta y le ponemos de nombre "Dominio".
3.2.-  Clic derecho sobre la carpeta creada "Dominio" - Agregar - Clase y le ponemos de nombre "Cliente.cs".
3.3.-  Le damos doble clic a Cliente.cs y definimos sus atributos, tal y como se muestran a continuación:


4. Crear DAO y Conexión a la base de datos

4.1.-  Clic derecho sobre WCFClientes – Agregar – Nueva Carpeta y le ponemos de nombre "Persistencia".
3.2.-  Clic derecho sobre la carpeta creada "Dominio" - Agregar - Clase y le ponemos de nombre "ConexionUtil.cs".
3.3.-  Le damos doble clic a ConexionUtil.cs y definimos la cadena de conexión, tal. Como notarán a continuación podemos definir distintas conexiones e invocarlas posteriormente, para el caso de que tengamos que acceder a distintas bases de datos desde un mismo servicio:

















3.4.-  Luego creamos nuestro DAO, para esto creamos en la carpeta "Persistencia" la clase "ClienteDAO.cs" tal y como creamos "ConexionUtil", aquí tenemos dos métodos que nos van a servir para nuestro propósito:

3.4.1.-  ObtenerCliente




3.4.2.-  BuscarCliente, aquí recibe dos parámetros, el tipo: que es el campo por el cual se va a buscar (nombre, dirección o teléfono) y la variable var: que es el valor que se va a recibir de búsqueda y de acuerdo a eso se arma el query dependiendo de lo que llegue:




4. Luego trabajamos en el servicio, en el archivo Clientes.svc.cs de tal forma que quede así:



5. Interfaz IClientes.cs 
Aquí es donde definimos las dos variables en la URI




6. Marcado en Clientes.svc.cs 
Clic derecho sobre archivo Clientes.svc.cs y seleccionamos Ver Marcado y debemos dejarlo así:



7. Compilar Servicio 
Clic derecho sobre el servicio WCFClientes y lo compilamos

8. Visualizar Servicio en Navegador 
Finalmente clic derecho sobre Clientes.svc.cs y seleccionamos Ver en Explorador.

8.1.- El servicio levantado


8.2.- El servicio Clientes buscando por teléfono "t"


8.3.- El servicio Clientes buscando por nombre "n"


8.4.- El servicio Clientes buscando por dirección "d"




9. Referencias


https://msdn.microsoft.com/es-es/library/bb675245(v=vs.110).aspx
http://stackoverflow.com/questions/15289120/optional-uritemplate-parameter-using-webget
http://helibertoarias.com/net/como-publicar-servicio-web-wcf-con-json-en-c/
http://www.c-sharpcorner.com/blogs/optional-parameters-in-wcf-service-uri-template1