public OrderService(IUnitOfWork uow, IProductService productService) { _productService = productService; _orderValidator = new FluentOrderValidator(productService); _uow = uow; }
public void Fluent_Order_Validator() { FluentOrderValidator validator = new FluentOrderValidator(_productService); ValidationResult validationResult; #region RuleSet:Create #region Valid Order valid = validOrder(); validationResult = validator.Validate(valid, ruleSet: "Create"); Assert.IsTrue(validationResult.IsValid); #endregion #region OrderDate //Must not be in the future Order invalidOrderDate = validOrder(); invalidOrderDate.OrderDate = DateTime.Now + TimeSpan.FromMinutes(10); validationResult = validator.Validate(invalidOrderDate, ruleSet: "Create"); Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <Order>(o => o.OrderDate)); #endregion #region OrderLine //Not Empty Order emptyOrderLines = validOrder(); emptyOrderLines.OrderLines = new List <OrderLine>(); validationResult = validator.Validate(emptyOrderLines, ruleSet: "Create"); Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <Order>(o => o.OrderLines)); //Must be valid Order invalidOrderLines = validOrder(); invalidOrderLines.OrderLines.Add(invalidOrderLine()); validationResult = validator.Validate(invalidOrderLines, ruleSet: "Create"); Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <Order>(o => o.OrderLines)); #endregion #region OrderStatus //Must be 'Created' Order invalidOrderStatus = validOrder(); invalidOrderStatus.OrderStatus = OrderStatus.Paid; validationResult = validator.Validate(invalidOrderStatus, ruleSet: "Create"); Assert.IsTrue(validationResult.Errors.ContainsErrorForProperty <Order>(o => o.OrderStatus)); #endregion #endregion }