public void Calculate_With_PlainText_Response_Passing_An_Valid_Date() { var ageCalculatedRequestDTO = new AgeCalculateRequestDTO { BirthDate = DateTime.Now.AddYears(-1).ToShortDateString() }; var objectResult = (ObjectResult)_ageController.CalculateWithPlainTextResponse(ageCalculatedRequestDTO); var envelopeResponse = (Envelope <string>)objectResult.Value; Assert.Null(envelopeResponse.ErrorMessage); }
public void Calculate_With_PlainText_Response_Passing_An_Invalid_Date() { var ageCalculatedRequestDTO = new AgeCalculateRequestDTO { BirthDate = "30*/12*/1992" }; var objectResult = (ObjectResult)_ageController.CalculateWithPlainTextResponse(ageCalculatedRequestDTO); var envelopeResponse = (Envelope <string>)objectResult.Value; Assert.NotNull(envelopeResponse.ErrorMessage); Assert.Equal(AgeValidationErrorMessagesConsts.INVALID_DATE, envelopeResponse.ErrorMessage); }
public IActionResult CalculateWithPlainTextResponse(AgeCalculateRequestDTO ageCalculateRequestDTO) { var validationResult = _commonValidationAgeCalculateRequestDTO.Validate(ageCalculateRequestDTO); if (validationResult.IsValid == false) { return(Error(validationResult.Message)); } DateTime.TryParse(ageCalculateRequestDTO.BirthDate, out var convertedBirthDate); var plainTextResponse = $"Uma pessoa que nasceu em '{convertedBirthDate.ToShortDateString()}' hoje tem {DateTimeUtils.GetTotalCompletedYearsSinceBirthdate(convertedBirthDate)} anos, {DateTimeUtils.GetTotalCompletedMonthsSinceLastBirthday(convertedBirthDate)} meses e {DateTimeUtils.GetTotalCompletedDaysSinceLastBirthday(convertedBirthDate)} dias."; return(Ok(plainTextResponse)); }
public void Calculate_With_Numeric_Response_Passing_An_Valid_Date() { var ageCalculatedRequestDTO = new AgeCalculateRequestDTO { BirthDate = DateTime.Now.AddYears(-1).ToShortDateString() }; var objectResult = (ObjectResult)_ageController.CalculateWithNumericResponse(ageCalculatedRequestDTO); var envelopeResponse = (Envelope <AgeCalculateResponseDTO>)objectResult.Value; Assert.Null(envelopeResponse.ErrorMessage); Assert.Equal(366, envelopeResponse.Result.AgeInDays); Assert.Equal(12, envelopeResponse.Result.AgeInMonths); Assert.Equal(1, envelopeResponse.Result.AgeInYears); }
public (bool IsValid, string Message) Validate(AgeCalculateRequestDTO ageCalculateRequestDTO) { if (ageCalculateRequestDTO is null) { return(false, AgeValidationErrorMessagesConsts.NULL_REFERENCE); } var isAnValidDateTime = DateTime.TryParse(ageCalculateRequestDTO.BirthDate, out var convertedBirthDate); if (isAnValidDateTime == false) { return(false, AgeValidationErrorMessagesConsts.INVALID_DATE); } return(true, string.Empty); }
public IActionResult CalculateWithNumericResponse(AgeCalculateRequestDTO ageCalculateRequestDTO) { var validationResult = _commonValidationAgeCalculateRequestDTO.Validate(ageCalculateRequestDTO); if (validationResult.IsValid == false) { return(Error(validationResult.Message)); } DateTime.TryParse(ageCalculateRequestDTO.BirthDate, out var convertedBirthDate); var ageCalculateResponseDTO = new AgeCalculateResponseDTO { AgeInDays = DateTimeUtils.GetTotalCompletedDaysSinceBirthdate(convertedBirthDate), AgeInMonths = DateTimeUtils.GetTotalCompletedMonthsSinceBirthdate(convertedBirthDate), AgeInYears = DateTimeUtils.GetTotalCompletedYearsSinceBirthdate(convertedBirthDate) }; return(Ok(ageCalculateResponseDTO)); }