コード例 #1
0
        public OrderService(IUnitOfWork uow, IProductService productService)
        {
            _productService = productService;

            _orderValidator = new FluentOrderValidator(productService);

            _uow = uow;
        }
コード例 #2
0
        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
        }