Desarrollar una solución(C#) para lanzar una serie de drones para sobrevolar el territorio y detectar fuentes de calor.
- Visual Studio 2019 (Community)
- .Net Core 3.1
- Lenguaje C#
- Swashbuckle.AspNetCore 6.1.4
- MSTest
-
Definir formula de avance del dron al volar, este puede moverse hacia el norte, sur, este y oeste segun el grafico:
-
Definir dirección al girar hacia la izquierda "L" o hacia la derecha "R" Ejemplo: Si la direccion inicial está en "este" eso equivale a 0° al girar hacia la izquierda se le aumentan 90°, el resultado de la suma es 90° eso indica que la nueva direccion es "norte". Si la dirección inicial es "oeste" eso equivale a 180° o -180°(segun la grafica), al girar hacia la derecha se le disminuye -90°, el resultado de la operación seria 90° y -270° respectivamente, eso indica que la nueva direccion seria "norte".
1 Ejecutar la aplicacion con el programa visual studio 2019(Community), donde previamente se le haya instalado .net Core 3.1. 2 La aplicacion tipo Api, levantará con el puerto 44392 y a traves del endpoint /api/ControlForestal (POST) se enviará las instrucciones por el body de la peticcion http, de las siguientes 2 formas: - Con postman: - Copiar y pegar la url "https://localhost:44392/api/ControlForestal" del Api. - Pegar la siguiente estructura en el body:
{
"PerimetroRectanguloBase": 5,
"PerimetroRectanguloAltura": 5,
"InstruccionesDto": [
{
"CoordenadaVuelo": {
"PuntoX": 3,
"PuntoY": 3,
"Direccion" :"E"
},
"Acciones": ["L"]
},
{
"CoordenadaVuelo": {
"PuntoX": 3,
"PuntoY": 3,
"Direccion" :"E"
},
"Acciones": ["M","M","R","M","M","R","M","R","R","M"]
},
{
"CoordenadaVuelo": {
"PuntoX": 1,
"PuntoY": 2,
"Direccion" :"N"
},
"Acciones": ["L","M","L","M","L","M","L","M","M","L","M","L","M","L","M","L","M","M"]
}
]
}
-
Enviar la petición con el boton "Send", el resultado respondera un code status 200 y la respuesta final con las coordenadas del recorrido del dron.
[ { "puntoX": 3, "puntoY": 3, "direccion": "N" }, { "puntoX": 5, "puntoY": 1, "direccion": "E" }, { "puntoX": 1, "puntoY": 4, "direccion": "N" } ]
-
Ir la url https://localhost:44392/swagger/index.html y click en el endpoint POST "/api/ControlForestal"
-
Pegar la siguiente estructura en el body:
{ "PerimetroRectanguloBase": 5, "PerimetroRectanguloAltura": 5, "InstruccionesDto": [ { "CoordenadaVuelo": { "PuntoX": 3, "PuntoY": 3, "Direccion" :"E" }, "Acciones": ["L"] }, { "CoordenadaVuelo": { "PuntoX": 3, "PuntoY": 3, "Direccion" :"E" }, "Acciones": ["M","M","R","M","M","R","M","R","R","M"] }, { "CoordenadaVuelo": { "PuntoX": 1, "PuntoY": 2, "Direccion" :"N" }, "Acciones": ["L","M","L","M","L","M","L","M","M","L","M","L","M","L","M","L","M","M"] } ] }
-
Enviar la petición con el boton "Execute", el resultado respondera un code status 200 y la respuesta final con las coordenadas del recorrido del dron.
-
Se han creado 5 test unitarios para validar 5 escenarios del correcto vuelo de la aplicacion.
- Post_SiLaDireccionInicialNoEsValida_SeNosRetornaUn400 Las direccion inicial, solo puede aceptar valores como "N":Norte,"S":Sur,"E":Este,"O":Oeste
- Post_SiLasAccionesNoSonValidas_SeNosRetornaUn400 Las acciones ingresadas solo pueden ser los valores como "L": Izquierda, "R": Derecha, "M": Avanzar
- Post_SiElAreaDeVueloDelDronPorSusAccionesNoEsValida_SeNosRetornaUn400 Valida el area de vuelo del dron, si las instrucciones indican que el dron debe salir del area, este retornará un 400(BadResquest).
- Post_SiLosValoresDeVueloIngresadoSonValidos_Caso01_SeNosRetornaUn200 Se prueba que el api, retorne 200 con las coordenadas finales, para un primer escenario sencillo, con los valores correctamente ingresados.
- Post_SiLosValoresDeVueloIngresadoSonValidos_Caso02_SeNosRetornaUn200 Se prueba que el api, retorne 200 con las coordenadas finales, para un segundo escenario más complejo, con los valores correctamente ingresados.