public void CanGetShortBundleDescription() { // arrange var bundle = new Bundle(); bundle.AddBaseProduct(2, "pepsi"); bundle.AddBaseProduct(3, "hotdogs"); bundle.AddAdditionProduct("plates").WithPercentOff(50).OnQuantity(2); bundle.AddAdditionProduct("forks").WithPercentOff(25).OnQuantity(4); // act string descr = bundle.GetShortBundleDescr(); // assert const string expected = "[2 pepsi, 3 hotdogs] => " + "[50% off on 2 plates, 25% off on 4 forks]"; Assert.Equal(expected, descr); }
public void CanAddBaseProducts() { // arrange var bundle = new Bundle(); // act bundle.AddBaseProduct(5, "pepsi"); // assert Assert.Equal(1, bundle.BaseProducts.Count); Assert.Equal("pepsi", bundle.BaseProducts[0].Product); Assert.Equal(5, bundle.BaseProducts[0].Quantity); }
public void CanGiveTwoCups75PercentOffForFivePepsi() { // arrange var order = new Order(); order.AddItem("pepsi").Quantity(5).PricePerUnit(1); order.AddItem("souvenir cup").Quantity(2).PricePerUnit(2); var bundle = new Bundle(); bundle.AddBaseProduct(5, "pepsi"); bundle.AddAdditionProduct("souvenir cup").WithPercentOff(75).OnQuantity(2); order.AddDiscount(bundle); // act order.ApplyDiscounts(); var total = order.CalculateTotal(); // assert Assert.Equal(6, total); }