public OrderItem Update(OrderItem entity) { Debug.WriteLine("UPDATING orderItem in database"); var existing = OrderItems.First(c => c.ID == entity.ID); Mapper.Map(entity, existing); return entity; }
public void Is_valid_when_item_status_is_submitted() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.SUBMITTED_STATUS; var rule = new ValidOrderItemStatusForUpdateRule(item); rule.Validate().IsValid.ShouldBe(true); rule.ErrorMessage.ShouldBe(null); }
public void Is_invalid_when_item_price_does_not_equal_product_price() { var orderItem = new OrderItem() { Price = 10 }; var product = new Product { Price = 11 }; var rule = new OrderItemPriceValidityRule(orderItem, product); rule.Validate().IsValid.ShouldBe(false); rule.ErrorMessage.ShouldNotBe(null); }
public void Is_valid_when_an_order_item_is_backordered() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.BACK_ORDERED_STATE; var rule = new CanShipOrderItemRule(item); rule.Validate().IsValid.ShouldBe(true); rule.ErrorMessage.ShouldBe(null); }
public void Is_invalid_when_an_order_item_is_shipped() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.SHIPPED_STATUS; var rule = new CanShipOrderItemRule(item); rule.Validate().IsValid.ShouldBe(false); rule.ErrorMessage.ShouldNotBe(null); }
public void Is_invalid_when_item_amount_does_not_equal_item_amount_times_product_price() { var orderItem = new OrderItem() { Amount = 30, Quantity = 3 }; var product = new Product { Price = 11 }; var rule = new OrderItemAmountValidityRule(orderItem, product); rule.Validate().IsValid.ShouldBe(false); rule.ErrorMessage.ShouldNotBe(null); }
public void Is_invalid_when_an_order_item_is_pending() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.PENDING_STATUS; var rule = new CanSubmitOrderItemRule(item); rule.Validate().IsValid.ShouldBe(true); rule.ErrorMessage.ShouldBe(null); }
public void Is_invalid_when_item_status_is_backordered() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.BACK_ORDERED_STATE; var rule = new ValidOrderItemStatusForUpdateRule(item); rule.Validate().IsValid.ShouldBe(false); rule.ErrorMessage.ShouldBe("Backordered items cannot be changed"); }
public void Is_valid_when_item_status_is_not_shipped() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.PENDING_STATUS; var rule = new ValidOrderItemStatusForDeleteRule(item); rule.Validate().IsValid.ShouldBe(true); rule.ErrorMessage.ShouldBe(null); }
public void Is_invalid_when_item_status_is_shipped() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.SHIPPED_STATUS; var rule = new ValidOrderItemStatusForUpdateRule(item); rule.Validate().IsValid.ShouldBe(false); rule.ErrorMessage.ShouldBe("Shipped items cannot be changed"); }
public void Is_valid_when_item_price_equals_product_price() { var orderItem = new OrderItem() { Price = 10 }; var product = new Product { Price = 10 }; var rule = new OrderItemPriceValidityRule(orderItem, product); rule.Validate().IsValid.ShouldBe(true); rule.ErrorMessage.ShouldBe(null); }
public async Task Is_valid_when_an_order_item_is_submitted_async() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.SUBMITTED_STATUS; var rule = new CanShipOrderItemRule(item); await rule.ValidateAsync(); rule.IsValid.ShouldBe(true); rule.ErrorMessage.ShouldBe(null); }
public async Task Is_valid_when_item_amount_equals_item_quantity_times_product_price_async() { var orderItem = new OrderItem() { Amount = 30, Quantity = 3 }; var product = new Product { Price = 10 }; var rule = new OrderItemAmountValidityRule(orderItem, product); await rule.ValidateAsync(); rule.IsValid.ShouldBe(true); rule.ErrorMessage.ShouldBe(null); }
public async Task Is_invalid_when_an_order_item_is_backordered_async() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.BACK_ORDERED_STATE; var rule = new CanSubmitOrderItemRule(item); await rule.ValidateAsync(); rule.IsValid.ShouldBe(false); rule.ErrorMessage.ShouldNotBe(null); }
public async Task Is_invalid_when_item_status_is_shipped_async() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.SHIPPED_STATUS; var rule = new ValidOrderItemStatusForDeleteRule(item); await rule.ValidateAsync(); rule.IsValid.ShouldBe(false); rule.ErrorMessage.ShouldNotBe(null); }
public async Task Is_invalid_when_an_order_item_is_pending_async() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.PENDING_STATUS; var rule = new CanShipOrderItemRule(item); await rule.ValidateAsync(); rule.IsValid.ShouldBe(false); rule.ErrorMessage.ShouldNotBe(null); }
public async Task Is_valid_when_item_status_is_pending_async() { var item = new OrderItem(); item.OrderStatusID = OrderStatusConstants.PENDING_STATUS; var rule = new ValidOrderItemStatusForUpdateRule(item); await rule.ValidateAsync(); rule.IsValid.ShouldBe(true); rule.ErrorMessage.ShouldBe(null); }
public OrderItem Insert(OrderItem entity) { Debug.WriteLine("INSERTING orderItem into database"); lock (_lock) { _counter++; } entity.ID = _counter; OrderItems.Add(Mapper.Map(entity, new OrderItem())); return entity; }
public async Task<OrderItem> UpdateAsync(OrderItem entity) { return Update(entity); }
public async Task<OrderItem> InsertAsync(OrderItem entity) { return Insert(entity); }
public OrderItemPriceValidityRule(OrderItem item, Product product) { _item = item; _product = product; }
public ValidOrderItemStatusForUpdateRule(OrderItem item) { _item = item; }
public OrderItemAmountValidityRule(OrderItem item, Product product) { _item = item; _product = product; }
public CanSubmitOrderItemRule(OrderItem orderItem) { _orderItem = orderItem; }
public CanShipOrderItemRule(OrderItem orderItem) { _orderItem = orderItem; }
public ValidOrderItemStatusForDeleteRule(OrderItem item) { _item = item; }