public void Test_CanAddOrRemovePricingRule() { productService.AddPricingRule(new PricingRule() { Id = 5, Quantity = 1, Price = 1.35m, MeasureUnit = MeasureUnit.KILOGRAM, Description = "new pricing rule", BonusQuantity = 0 }); productService.RemovePricingRule(5); }
public void Setup() { // we can use Mocking framework like Moq or NSubstitute orderService = new OrderService(); productService = new ProductService(); // init new list of pricing rules productService.AddPricingRule(new PricingRule() { Id = 1, Quantity = 3, Price = 1m, MeasureUnit = MeasureUnit.PIECE, Description = "Buy Three for a Dollar", BonusQuantity = 0 }); productService.AddPricingRule(new PricingRule() { Id = 2, Quantity = 1, Price = 1.99m, MeasureUnit = MeasureUnit.POUND, Description = "Buy one pound for 2 Dollars", BonusQuantity = 0 }); productService.AddPricingRule(new PricingRule() { Id = 3, Quantity = 2, Price = 1.5m, MeasureUnit = MeasureUnit.PIECE, Description = "Buy two, get one free", BonusQuantity = 1 }); productService.AddPricingRule(new PricingRule() { Id = 4, Quantity = 1, Price = 0.65m, MeasureUnit = MeasureUnit.PIECE, Description = "standard pricing", BonusQuantity = 0 }); // init new list of products productService.AddProduct(new Product() { Id = 1, Name = "A1", Sku = "A0001", UnitPrice = 0.5m, MeasureUnit = MeasureUnit.PIECE, PricingRule = productService.GetPricingRule(1) }); productService.AddProduct(new Product() { Id = 2, Name = "B1", Sku = "B0001", UnitPrice = 4.75m, MeasureUnit = MeasureUnit.POUND, PricingRule = productService.GetPricingRule(2) }); productService.AddProduct(new Product() { Id = 3, Name = "C1", Sku = "C0001", UnitPrice = 1.75m, MeasureUnit = MeasureUnit.PIECE, PricingRule = productService.GetPricingRule(3) }); productService.AddProduct(new Product() { Id = 4, Name = "D1", Sku = "D0001", UnitPrice = 5.25m, MeasureUnit = MeasureUnit.PIECE, PricingRule = productService.GetPricingRule(4) }); productService.AddProduct(new Product() { Id = 5, Name = "E1", Sku = "E0001", UnitPrice = 5.25m, MeasureUnit = MeasureUnit.GALLON }); productService.AddProduct(new Product() { Id = 7, Name = "B2", Sku = "B0002", UnitPrice = 0.55m, MeasureUnit = MeasureUnit.OUNCE, PricingRule = productService.GetPricingRule(2) }); productService.AddProduct(new Product() { Id = 8, Name = "D2", Sku = "D0002", UnitPrice = 5.25m, MeasureUnit = MeasureUnit.GALLON, PricingRule = productService.GetPricingRule(4) }); // init new order object with zero items orderService.AddOrder(new Order() { Id = 1, ProductOrderList = new List <ProductOrder>() }); orderService.AddOrder(new Order() { Id = 2, ProductOrderList = new List <ProductOrder>() }); orderService.AddOrder(new Order() { Id = 3, ProductOrderList = new List <ProductOrder>() }); }