public void ProcessPersona_ValidInputMasculinePersona_Returns0Values() { //Arrange var personaValidator = Substitute.For <IValidator>(); var personaFormatter = Substitute.For <IPersonaFormatter>(); var personasProcessor = new PersonasProcessor(personaValidator, personaFormatter); var persona = new Persona { Nombre = "Rosa", Apellido = "Benitez", Sexo = Sexo.M, Edad = 20 }; var personaRequest = new PersonaRequest { Personas = new List <Persona> { persona } }; var validationResult = new PersonasResult(); personaValidator.ValidateInputList(personaRequest).Returns(validationResult); //Act ProcessResult result = personasProcessor.Process(personaRequest); //Assert Assert.IsTrue(result.Success); Assert.AreEqual(0, result.PersonasMujeresMayoresDe18.Count()); }
public void ProcessPersona_NotValidInput_ReturnsErrorStatus() { //Arrange var personaValidator = Substitute.For <IValidator>(); var personaFormatter = Substitute.For <IPersonaFormatter>(); var personaProcessor = new PersonasProcessor(personaValidator, personaFormatter); var personaRequest = new PersonaRequest { Personas = null }; var personasResult = new PersonasResult { ErrorMessages = new List <string> { "Ingresar al menos 1 persona." } }; personaValidator.ValidateInputList(personaRequest).Returns(personasResult); //Act ProcessResult result = personaProcessor.Process(personaRequest); //Assert Assert.IsFalse(result.Success); Assert.AreEqual("El proceso no puede ser completado. Error: Ingresar al menos 1 persona.", result.ErrorMessage); }
public PersonasResult ValidateInputList(PersonaRequest persona) { var result = new PersonasResult(); if (persona == null || persona.Personas == null || persona.Personas.Count < 1) { result.ErrorMessages.Add("Ingresar al menos 1 persona."); } return(result); }
public void ValidateInput_NotNullRequestNullListValue_ReturnsError() { //Arrange var personaRequests = new PersonaRequest(); var validator = new Validator(); //Act PersonasResult result = validator.ValidateInputList(personaRequests); //Assert Assert.IsFalse(result.Success); Assert.AreEqual(1, result.ErrorMessages.Count()); Assert.AreEqual("Ingresar al menos 1 persona.", result.ErrorMessages.First()); }
public ProcessResult Process(PersonaRequest personaRequest) { var processResult = new ProcessResult(); PersonasResult validationResult = PersonaValidator.ValidateInputList(personaRequest); if (!validationResult.Success) { string erroresString = String.Join("\n", validationResult.ErrorMessages); processResult.ErrorMessage = $"El proceso no puede ser completado. Error: " + $"{erroresString}"; } else { string erroresString = null; foreach (var persona in personaRequest.Personas) { ValidatePersonaResult validatePersonaResult = PersonaValidator.ValidatePersona(persona); if (validatePersonaResult.Success) { if (persona.Sexo == Sexo.F && persona.Edad > 17) { processResult.PersonasMujeresMayoresDe18 .Add(PersonaFormatter.FormatPersona(persona)); } } else { erroresString = string.Join("\n", validatePersonaResult.ErrorMessages); } } if (!string.IsNullOrEmpty(erroresString)) { processResult.ErrorMessage = $"El proceso no puede ser completado. Error: {erroresString}"; } } return(processResult); }
public void ProcessPersona_NullNameNullApellido_ReturnsErrors() { //Arrange var personaValidator = Substitute.For <IValidator>(); var personaFormatter = Substitute.For <IPersonaFormatter>(); var personaProcessor = new PersonasProcessor(personaValidator, personaFormatter); var personaRequest = new PersonaRequest { Personas = new List <Persona> { new Persona { Edad = 19, Sexo = Sexo.F } } }; var personasResult = new PersonasResult { ErrorMessages = new List <string> { "El nombre es requerido.", "El apellido es requerido." } }; personaValidator.ValidateInputList(personaRequest).Returns(personasResult); //Act ProcessResult result = personaProcessor.Process(personaRequest); //Assert Assert.IsFalse(result.Success); Assert.AreEqual("El proceso no puede ser completado. " + "Error: El nombre es requerido.\nEl apellido es requerido.", result.ErrorMessage); }