public virtual IEnumerable <ValidationResult> Execute(int userId, ICreateVehicleCommand vehicle) { var vehicles = _vehicleRepository.GetVehicles(userId); if (vehicles.Count() >= MaxNumberOfVehiclesPerUser) { yield return(new ValidationResult(Resources.TooManyVehicles)); } foreach (var result in _validateVehicleYearMakeAndModel.Execute(vehicle)) { yield return(result); } }
public void WithInvalidMake_ThenReturnsValidationResult() { var vehicleForm = new VehicleFormModel { Name = "vehicle", Year = 1, MakeName = "Test", ModelName = "Test" }; SetupManufacturerRepo(isMakeValid: false); var handler = new CanValidateVehicleYearMakeAndModel(_manufacturerRepo.Object); var actual = handler.Execute(vehicleForm).ToList(); Assert.Equal(1, actual.Count); Assert.Contains("not valid", actual[0].Message, StringComparison.CurrentCultureIgnoreCase); Assert.Contains("make", actual[0].Message, StringComparison.CurrentCultureIgnoreCase); }
public void WithMissingYearForModel_ThenReturnsValidationResult() { var vehicleForm = new VehicleFormModel { Name = "vehicle", ModelName = "Test" }; _manufacturerRepo .Setup(x => x.IsValidYear(It.IsAny<int>())) .Returns(true); _manufacturerRepo .Setup(x => x.IsValidMake(It.IsAny<int>(), It.IsAny<string>())) .Returns(true); _manufacturerRepo .Setup(x => x.IsValidModel(It.IsAny<int>(), It.IsAny<string>(), It.IsAny<string>())) .Returns(true); var handler = new CanValidateVehicleYearMakeAndModel(_manufacturerRepo.Object); var actual = handler.Execute(vehicleForm).ToList(); Assert.Equal(1, actual.Count); Assert.Contains("missing", actual[0].Message, StringComparison.CurrentCultureIgnoreCase); Assert.Contains("year", actual[0].Message, StringComparison.CurrentCultureIgnoreCase); Assert.Contains("model", actual[0].Message, StringComparison.CurrentCultureIgnoreCase); }