public void OneTimeSetUp() { _sale = new Sale(new ItemBuilder()); _sale.AddItem("1245"); _sale.AddItem("99999"); _sale.AddItem("839"); }
public void Test_8c_cannot_add_items_on_cancelled_sale() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); sut.AddItem(item1); sut.Cancel(); var result = sut.AddItem(new SaleItem(new Product(2, "product2", "product2", "product2s", 2.22, "test2"), 2)); Assert.False(result.IsSuccess, "Added items to cancelled sale"); Assert.Equal(1, sut.TotalItems); }
public void Test_8_can_cancel() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); var item2 = new SaleItem(new Product(2, "product2", "product2", "product2s", 2.22, imageClassName: "test"), 2); sut.AddItem(item1); sut.AddItem(item2); var result = sut.Cancel(); Assert.True(result.IsSuccess, "Was unable to cancel open sale"); Assert.True(sut.IsCancelled, "Successfully cancelled sale not marked cancelled"); }
public void SaleTest() { var album1 = new Album(null, null, "Test Album 1", genres[0].Id); album1.Genre = genres[0]; var album2 = new Album(null, null, "Test Album 2", genres[1].Id); album2.Genre = genres[1]; var album3 = new Album(null, null, "Test Album 2", genres[2].Id); album3.Genre = genres[2]; var album4 = new Album(null, null, "Test Album 2", genres[3].Id); album4.Genre = genres[3]; var sale = new Sale(null, "Test Customer"); var saleItem1 = new SaleItem(sale.Id, album1.Id); saleItem1.Album = album1; saleItem1.Sale = sale; var saleItem2 = new SaleItem(sale.Id, album2.Id); saleItem2.Album = album2; saleItem2.Sale = sale; var saleItem3 = new SaleItem(sale.Id, album3.Id); saleItem3.Album = album3; saleItem3.Sale = sale; var saleItem4 = new SaleItem(sale.Id, album4.Id); saleItem4.Album = album4; saleItem4.Sale = sale; saleItem1.CalcCashback(); saleItem2.CalcCashback(); saleItem3.CalcCashback(); saleItem4.CalcCashback(); sale.AddItem(saleItem1); sale.AddItem(saleItem2); sale.AddItem(saleItem3); sale.AddItem(saleItem4); sale.TotalCashback = sale.Items.Sum(s => s.CashbackValue); sale.TotalValue = sale.Items.Sum(s => s.Album.Value); Assert.NotNull(sale); Assert.Equal((album1.Value + album2.Value + album3.Value + album4.Value), sale.TotalValue); Assert.Equal((saleItem1.CashbackValue + saleItem2.CashbackValue + saleItem3.CashbackValue + saleItem4.CashbackValue), sale.TotalCashback); }
public void Test_1a_can_add_items_when_over_paid() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); var item2 = new SaleItem(new Product(2, "product2", "product2", "product2s", 2.22, imageClassName: "test"), 2); sut.AddItem(item1); sut.AddItem(item2); sut.AddPayment(new Payment(4.44)); var result = sut.AddItem(item1); Assert.True(result.IsSuccess, "Was not able to add items to over paid sale"); Assert.Equal(4, sut.TotalItems); }
public void Test_7_cannot_add_item_to_paid_sale() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.00, imageClassName: "test"), 1); sut.AddItem(item1); sut.AddPayment(new Payment(item1.TotalPrice)); var result = sut.AddItem(new SaleItem(new Product(2, "product2", "product2", "product2s", 2.00, imageClassName: "test2"), 2)); Assert.False(result.IsSuccess, "Was able to add item to paid sale"); Assert.Equal(0, sut.Balance); Assert.Equal(1, sut.SaleItems.Count); Assert.Equal(1, sut.TotalItems); }
public void Test_1a_items_can_be_added() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); var item2 = new SaleItem(new Product(2, "product2", "product2", "product2s", 2.22, imageClassName: "test"), 2); var result1 = sut.AddItem(item1); var result2 = sut.AddItem(item2); Assert.True(result1.IsSuccess, "Unable to add item to sale"); Assert.True(result2.IsSuccess, "Unable to add 2nd item to sale"); Assert.Equal(2, sut.SaleItems.Count); Assert.Equal(item1, sut.SaleItems.First()); Assert.Equal(item2, sut.SaleItems.Last()); }
protected void btnAgregar_Click(object sender, EventArgs e) { if (txtProducto.Text.Length > 0 && txtCant.Text.Length > 0) { try { p = products.FetchProduct(txtProducto.Text); int disponibles = new InventoryDataHandler().RetrieveStocks(p); if (disponibles >= int.Parse(txtCant.Text)) { ItemEntry entry = new ItemEntry(p, int.Parse(txtCant.Text)); venta.AddItem(entry); venta.montoTotal += entry.monto; venta.productos += entry.cantidad; Session["Venta"] = venta; UpdateGrid(); } else { //Alertar existencias insuficientes } } catch (Exception ex) { Debug.Write(ex.Message); } } }
private static void AddItemToSale(string sku) { if (string.IsNullOrWhiteSpace(sku)) { _lastSkuWasValid = false; _sale = new Sale(new ItemBuilder()); return; } try { _lastSkuWasValid = true; _sale.AddItem(sku); } catch (ArgumentException ex) { if (ex.Message == $"The given SKU: {sku} is invalid.") { _lastSkuWasValid = false; Console.Clear(); Console.WriteLine(ex.Message); Console.WriteLine("Press any key to continue..."); Console.ReadLine(); } } }
public async Task <CommandResult> ExecuteAsync(CashbackCommandsHandler handler) { var obj = new Sale(Id, CustomerName); foreach (var item in Items) { var album = await handler.DbContext .Albums .Include(i => i.Genre) .ThenInclude(t => t.Cashbacks) .Where(w => w.Id == item.AlbumId) .FirstOrDefaultAsync(); if (album == null) { return(await Task.FromResult(new CommandResult(ErrorCode.NotFound, $"Album with id {item.AlbumId} was not found"))); } var saleItem = new SaleItem(obj.Id, album.Id); saleItem.Sale = obj; saleItem.Album = album; saleItem.CalcCashback(); obj.AddItem(saleItem); } obj.TotalValue = obj.Items.Sum(s => s.Album.Value); obj.TotalCashback = obj.Items.Sum(s => s.CashbackValue); await handler.DbContext.Sales.AddAsync(obj); await handler.DbContext.SaleItems.AddRangeAsync(obj.Items); var rows = await handler.DbContext.SaveChangesAsync(); return(await Task.FromResult(new CommandResult(rows, ErrorCode.None))); }
public void MakeOrder_PaymentIsCompleted_PaymentStateCompleted() { // Arrange Sale testSale = new Sale(); Product fysiek = new PhysicalProduct("fiets", 9.99f, "dit is een fietsje", new Tuple <float, float, float>(1, 2, 3), 7); Product digitaal = new DigitalProduct("download", 15f, "hier mee kan je iets downloaden", "www.blah.nl"); // Act testSale.AddItem(fysiek, "1"); testSale.AddItem(digitaal, "69"); testSale.SetCustomerInfo("Floris", "*****@*****.**", CustomerInfo.PaymentMethod.CreditCard, "Utrecht", "Androsdreef 88", "3562XC"); var value = Payment.state; // Assert Assert.AreEqual(PaymentState.Completed, value); }
// method name syntax: 'subject'_'condition'_'event' public void IsFilled_after_addtion() { // Arrange Sale testSale = new Sale(); Product fysiek = new PhysicalProduct("fiets", 9.99f, "dit is een fietsje", new Tuple <float, float, float>(1, 2, 3), 7); Product digitaal = new DigitalProduct("download", 15f, "hier mee kan je iets downloaden", "www.blah.nl"); // Act testSale.AddItem(fysiek, "3"); testSale.AddItem(digitaal, "5"); var value = testSale.IsFilled(); // Assert Assert.AreEqual(true, value); }
public void AddNewItem_WhenAllreadyPresent_AdditionOfQuantity() { // Arrange Sale testSale = new Sale(); Product fysiek = new PhysicalProduct("fiets", 9.99f, "dit is een fietsje", new Tuple <float, float, float>(1, 2, 3), 7); // Act testSale.AddItem(fysiek, "1"); var een = testSale.GetQuantity(); testSale.AddItem(fysiek, "3"); var twee = testSale.GetQuantity(); // Assert Assert.AreEqual(een + 3, twee); }
public void GetPrice_AfterDeletingCart_Zero() { // Arrange Sale testSale = new Sale(); Product fysiek = new PhysicalProduct("fiets", 9.99f, "dit is een fietsje", new Tuple <float, float, float>(1, 2, 3), 7); Product digitaal = new DigitalProduct("download", 15f, "hier mee kan je iets downloaden", "www.blah.nl"); // Act testSale.AddItem(fysiek, "3"); testSale.AddItem(digitaal, "5"); testSale.Cancel(); var value = testSale.GetPrice(); // Assert Assert.AreEqual(0, value); }
public void Test_8_can_cancel() { // expected to fail until exercise complete var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); var item2 = new SaleItem(new Product(2, "product2", "product2", "product2s", 2.22, imageClassName: "test"), 2); sut.AddItem(item1); sut.AddItem(item2); var result = sut.Cancel(); Assert.True(result.IsSuccess, "Was unable to cancel open sale"); // TODO Need Sale.IsCancelled Assert.True(false /*TODO isCancelled*/, "Successfully cancelled sale not marked cancelled"); }
public void Test_2_can_pay() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); sut.AddItem(item1); var result = sut.AddPayment(new Payment(1.11)); Assert.True(result.IsSuccess, "Unable to pay"); Assert.Equal(0, sut.Balance); }
public void Test_8c_cannot_cancel_cancelled_sale() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); sut.AddItem(item1); sut.Cancel(); var result = sut.Cancel(); Assert.False(result.IsSuccess, "Cancelled a previously cancelled sale"); }
public void Test_1c_item_can_be_deleted() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); sut.AddItem(item1); var result = sut.DeleteItem(item1.Product.Id); Assert.True(result.IsSuccess, "Unable to delete item"); Assert.False(sut.SaleItems.Any()); }
public void AddCartItem_ShippingForPhysical_ChangesBool() { // Arrange Sale testSale = new Sale(); Product fysiek = new PhysicalProduct("fiets", 9.99f, "dit is een fietsje", new Tuple <float, float, float>(1, 2, 3), 7); // Act testSale.AddItem(fysiek, "69"); var heeftFysiek = testSale.ContainsPhysical(); // Assert Assert.AreEqual(true, heeftFysiek); }
public void AddCartItem_NoShippingForDigital_ChangesBool() { // Arrange Sale testSale = new Sale(); Product digitaal = new DigitalProduct("download", 15f, "hier mee kan je iets downloaden", "www.blah.nl"); // Act testSale.AddItem(digitaal, "69"); var heeftFysiek = testSale.ContainsPhysical(); // Assert Assert.AreEqual(false, heeftFysiek); }
public void Test_8c_cannot_change_item_quantity_on_cancelled_sale() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); sut.AddItem(item1); sut.Cancel(); var result = sut.SetItemQuantity(item1.Product.Id, 123); Assert.False(result.IsSuccess, "Changed item quantity on cancelled sale"); Assert.Equal(1, sut.TotalItems); }
public void Test_8c_cannot_delete_item_on_cancelled_sale() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); sut.AddItem(item1); sut.Cancel(); var result = sut.DeleteItem(item1.Product.Id); Assert.False(result.IsSuccess, "Deleted item on cancelled sale"); Assert.Equal(1, sut.TotalItems); }
public void Test_8c_cannot_pay_on_cancelled_sale() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); sut.AddItem(item1); sut.Cancel(); var result = sut.AddPayment(new Payment(10)); Assert.False(result.IsSuccess, "Added payment to cancelled sale"); Assert.Equal(0, sut.AmountPaid); }
public void Test_8c_cannot_give_change_to_cancelled_sale() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); sut.AddItem(item1); sut.Cancel(); var result = sut.AddChange(new Change(1.00)); Assert.False(result.IsSuccess, "Gave change on cancelled sale"); Assert.Equal(0, sut.ChangeGiven); }
public void Test_6_can_give_change_when_amount_equals_payment_balance() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.00, imageClassName: "test"), 1); sut.AddItem(item1); sut.AddPayment(new Payment(50)); var result = sut.AddChange(new Change(50)); Assert.True(result.IsSuccess, "Unable to give change when change amount equals payment balance"); Assert.Equal(item1.TotalPrice * -1, sut.Balance); }
public void Test_6_cannot_give_change_on_paid_sale() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.00, imageClassName: "test"), 1); sut.AddItem(item1); sut.AddPayment(new Payment(item1.TotalPrice)); var result = sut.AddChange(new Change(9.00)); Assert.False(result.IsSuccess, "Was able to give change on a paid sale"); Assert.Equal(0, sut.Balance); }
public void Test_8b_change_amount_cannot_exceed_payment_balance() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 10.11, imageClassName: "test"), 1); sut.AddItem(item1); sut.AddPayment(new Payment(5)); var result = sut.AddChange(new Change(6.00)); Assert.False(result.IsSuccess, "Added change that exceeds payment balance"); Assert.Equal(0, sut.ChangeGiven); }
public void Test_1b_item_quantity_can_be_changed() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1); sut.AddItem(item1); var result = sut.SetItemQuantity(item1.Product.Id, 2); Assert.True(result.IsSuccess, "Unable to change item quantity"); Assert.Equal(2, sut.SaleItems.First().Quantity); Assert.Equal(1, sut.SaleItems.Count); }
public void Test_3_can_give_change() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.00, imageClassName: "test"), 1); sut.AddItem(item1); sut.AddPayment(new Payment(10)); var result = sut.AddChange(new Change(9.00)); Assert.True(result.IsSuccess, "Unable to give change"); Assert.Equal(0, sut.Balance); }
public void Test_8a_cannot_cancel_sale_with_payment_balance() { var sut = new Sale(1); var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 10.11, imageClassName: "test"), 1); sut.AddItem(item1); sut.AddPayment(new Payment(5)); var result = sut.Cancel(); Assert.False(result.IsSuccess, "Cancelled sale with a payment balance"); Assert.False(sut.IsCancelled, "Successfully cancelled sale not marked cancelled"); }