private ProductDto CreateSpecial(CreateSpecialArgs args, Func <Special> createSpecial, Func <Special, ISpecialDto> mapToSpecialDto) { var product = _productRepository.FindProduct(args.ProductName); product.Special = createSpecial(); var persistedProduct = _productRepository.UpdateProduct(product); var productDto = _mapper.Map <ProductDto>(persistedProduct); productDto.Special = mapToSpecialDto(product.Special); return(productDto); }
public void CreateSpecialArgsValidator_ContainsCorrectValidationRules() { _validator.ShouldHaveValidationErrorFor(x => x.ProductName, null as string); _validator.ShouldHaveValidationErrorFor(x => x.ProductName, ""); _validator.ShouldHaveValidationErrorFor(x => x.ProductName, " "); _validator.ShouldHaveValidationErrorFor(x => x.ProductName, "milk"); _validator.ShouldHaveValidationErrorFor(x => x.EndTime, (DateTime?)null); var args = new CreateSpecialArgs() { ProductName = "can of soup", EndTime = DateTime.Now }; Action validate = () => _validator.ValidateAndThrow(args); validate.Should().Throw <ValidationException>("*Special start time is required*"); args.StartTime = DateTime.Now; validate.Should().Throw <ValidationException>("*Special start time must be less than end time*"); }