public async Task <ResultadoDto> ValidarDatosAsync(MudanzaDto mudanza) { string mensaje; if (String.IsNullOrEmpty(mudanza.Cedula)) { mensaje = "El campo Cédula es obligatorio."; } else if (mudanza.Archivo == null) { mensaje = "El campo Archivo es obligatorio."; } else if (mudanza.Archivo.Length == 0) { mensaje = "El archivo esta vacio."; } else if (mudanza.Archivo.Length > 1000000) { mensaje = "El archivo es demasiado grande."; } else if (!mudanza.Archivo.ContentType.Contains("text/plain")) { mensaje = "Se esperaba un archivo .txt"; } else { mensaje = await ValidarDatosArchivoAsync(mudanza.Archivo); } return(new ResultadoDto { Error = !String.IsNullOrEmpty(mensaje), ErrorMensaje = mensaje }); }
public async Task EjecutarProcesoMudanzaInvalidTest() { // Arrange var archivo = ContruirIFormFile(); var mudanza = new MudanzaDto { Archivo = null }; var ResultadoProceso = new ResultadoDto { Error = true }; var mockMudanzaAplication = new Mock <IMudanzaAplication>(); mockMudanzaAplication.Setup(x => x.EjecutarProcesoMudanzaAsync(mudanza)) .ReturnsAsync(ResultadoProceso); MudanzaController controllador = new MudanzaController(mockMudanzaAplication.Object); // Act var resultado = await controllador.PostAsync(mudanza); // Assert var okObjectResult = resultado as OkObjectResult; Assert.NotNull(okObjectResult); Assert.Equal(200, okObjectResult.StatusCode); var presentations = okObjectResult.Value as ResultadoDto; Assert.True(presentations.Error); }
public async Task EjecutarProcesoMudanzaTest() { // Arrange var archivo = ContruirIFormFile(); var mudanza = new MudanzaDto { Cedula = "1065", Archivo = archivo }; var ResultadoProceso = new ResultadoDto { Salida = "Case #1: 2\nCase #2: 1\nCase #3: 2\nCase #4: 3\nCase #5: 8\n" }; var mockMudanzaAplication = new Mock <IMudanzaAplication>(); mockMudanzaAplication.Setup(x => x.EjecutarProcesoMudanzaAsync(mudanza)) .ReturnsAsync(ResultadoProceso); MudanzaController controllador = new MudanzaController(mockMudanzaAplication.Object); // Act var resultado = await controllador.PostAsync(mudanza); // Assert var okObjectResult = resultado as OkObjectResult; Assert.NotNull(okObjectResult); Assert.Equal(200, okObjectResult.StatusCode); var presentations = okObjectResult.Value as ResultadoDto; Assert.Equal(presentations.Salida, ResultadoProceso.Salida); }
public async Task ValidarDatosErrorAsyncTest() { // Arrange var datos = new MudanzaDto { Cedula = "1065", Archivo = null }; // Act var resultado = await _mudanza.ValidarDatosAsync(datos); // Assert Assert.True(resultado.Error); Assert.NotEmpty(resultado.ErrorMensaje); }
public async Task <ResultadoDto> EjecutarProcesoMudanzaAsync(MudanzaDto mudanza) { String[] arregloDatos; EntradasDto estrutura; ResultadoDto resultado; bool resultadoEntity; resultado = await ValidarDatosAsync(mudanza); if (!resultado.Error) { //cargamos el archivo a ser procesado arregloDatos = await CargarArchivoAsync(mudanza.Archivo); //leemos el arreglo de datos para convertirlo en una estructura estrutura = LeerArregloDatos(arregloDatos); //Procesamos los datos para calcular los viajes por dia resultado.Salida = ProcesarDatos(estrutura); //se almacena la traza resultadoEntity = await _logRepository.InsertAsync(new TblLog { Cedula = mudanza.Cedula, Fecha = DateTime.Now, Traza = resultado.Salida }); if (!resultadoEntity) { return new ResultadoDto { Error = true, ErrorMensaje = "Error al guardar la traza." } } ; } return(resultado); }
public async Task <IActionResult> PostAsync([FromForm] MudanzaDto mudanza) { ResultadoDto resultado = await _mudanzaAplication.EjecutarProcesoMudanzaAsync(mudanza); return(Ok(resultado)); }