public void MakeItem_NullProduct_ExceptionThrown() { // arrange var provider = Provider.MakeProvider("Julio", "09883060000174"); var providerOrder = ProviderOrder.MakeProviderOrder(7, provider); // act Assert.Throws <ArgumentNullException>(() => ProviderOrderItem.MakeProviderOrderItem(providerOrder, null, 5)); }
public void MakeItem_NullOrder_ExceptionThrown() { // arrange var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); product.UpdateAmount(15); // act Assert.Throws <ArgumentNullException>(() => ProviderOrderItem.MakeProviderOrderItem(null, product, 5)); }
public void ChangePrice_NegativePrice_ExceptionThrown() { // arrange var provider = Provider.MakeProvider("Julio", "09883060000174"); var providerOrder = ProviderOrder.MakeProviderOrder(7, provider); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); var providerOrderItem = ProviderOrderItem.MakeProviderOrderItem(providerOrder, product, 5); // act Assert.Throws <ArgumentException>(() => providerOrderItem.ChangePrice(-15)); }
public void MakeItem_NegativeAmount_ExceptionThrown() { // arrange var provider = Provider.MakeProvider("Julio", "09883060000174"); var providerOrder = ProviderOrder.MakeProviderOrder(7, provider); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); product.UpdateAmount(15); // act Assert.Throws <ArgumentException>(() => ProviderOrderItem.MakeProviderOrderItem(providerOrder, product, -5)); }
public void ChangeAmount_AmountSmallerThanProductAmount_ExceptionThrown() { // arrange var provider = Provider.MakeProvider("Julio", "09883060000174"); var providerOrder = ProviderOrder.MakeProviderOrder(7, provider); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); var providerOrderItem = ProviderOrderItem.MakeProviderOrderItem(providerOrder, product, 10); product.UpdateAmount(-5); // act Assert.Throws <ArgumentException>(() => providerOrderItem.ChangeAmount(4)); }
public void DeleteProviderOrderItem_ValidParameters_ProviderOrderItemDeleted() { // arrange var provider = Provider.MakeProvider("Julio", "09883060000174"); var providerOrder = ProviderOrder.MakeProviderOrder(7, provider); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); var providerOrderItem = ProviderOrderItem.MakeProviderOrderItem(providerOrder, product, 5); //act providerOrderItem.Delete(); // assert Assert.True(providerOrderItem.IsDeleted); }
public void DeleteProviderOrder_DeletedProviderOrder_ExceptionThrown() { // arrange var provider = Provider.MakeProvider("Julio", "09883060000174"); var providerOrder = ProviderOrder.MakeProviderOrder(7, provider); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); product.UpdateAmount(50); var providerOrderItem = ProviderOrderItem.MakeProviderOrderItem(providerOrder, product, 5); providerOrderItem.Delete(); // act Assert.Throws <InvalidOperationException>(() => providerOrderItem.Delete()); }
public void ChangePrice_PriceBiggerThanPrevious_PriceUpdated() { // arrange var provider = Provider.MakeProvider("Julio", "09883060000174"); var providerOrder = ProviderOrder.MakeProviderOrder(7, provider); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); var providerOrderItem = ProviderOrderItem.MakeProviderOrderItem(providerOrder, product, 5); // act providerOrderItem.ChangePrice(20); // assert Assert.Equal(providerOrderItem.Amount, 5); Assert.Equal(providerOrderItem.Deposits.Count, 1); Assert.Equal(providerOrderItem.Price, 20); Assert.Equal(providerOrderItem.TotalValue, 100); Assert.Equal(providerOrder.TotalValue, 100); Assert.Equal(product.Amount, 5); }
public void MakeItem_ValidParameters_ItemCreated() { // arrange var provider = Provider.MakeProvider("Julio", "09883060000174"); var providerOrder = ProviderOrder.MakeProviderOrder(7, provider); var product = Product.MakeProduct("Test product", "Test product", 15, Dimensions.MakeDimensions(11, 12, 13)); // act var providerOrderItem = ProviderOrderItem.MakeProviderOrderItem(providerOrder, product, 5); // assert Assert.Equal(providerOrderItem.Amount, 5); Assert.Equal(providerOrderItem.Deposits.Count, 1); Assert.Equal(providerOrderItem.Price, 15); Assert.Equal(providerOrderItem.ProductId, product.Id); Assert.Equal(providerOrderItem.ProviderOrderId, providerOrder.Id); Assert.Equal(providerOrderItem.TotalValue, 75); Assert.Equal(providerOrder.TotalValue, 75); Assert.Equal(product.Amount, 5); }
public async Task <IActionResult> PutProviderOrder(int id, ProviderOrder providerOrder) { var response = new SingleResponse <ProviderOrder>(); if (id != providerOrder.Id) { return(BadRequest()); } ProviderOrder po = _context.ProviderOrders.Where(po => po.Id == providerOrder.Id).AsNoTracking().Include(po => po.ProviderOrderItems).SingleOrDefault(); _context.Entry(po).CurrentValues.SetValues(providerOrder); _context.Entry(po).State = EntityState.Modified; if (po != null) { response.Model = providerOrder; foreach (ProviderOrderItem providerOrderItem in po.ProviderOrderItems) { if (!providerOrder.ProviderOrderItems.Any(c => c.Id == providerOrderItem.Id)) { _context.ProviderOrderItems.Remove(providerOrderItem); } } foreach (ProviderOrderItem providerOrderItem in providerOrder.ProviderOrderItems) { ProviderOrderItem existingChild = po.ProviderOrderItems .Where(c => c.Id == providerOrderItem.Id) .SingleOrDefault(); if (existingChild != null) { _context.Entry(existingChild).CurrentValues.SetValues(providerOrderItem); _context.Entry(existingChild).State = EntityState.Modified; } else { ProviderOrderItem newProviderOrderItem = new ProviderOrderItem { ProductId = providerOrderItem.ProductId, ProviderOrderId = providerOrderItem.ProviderOrderId, Quantity = providerOrderItem.Quantity }; Console.WriteLine("New " + newProviderOrderItem.Quantity); _context.ProviderOrderItems.Add(newProviderOrderItem); } } try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ProviderOrderExists(id)) { response.DidError = true; response.ErrorMessage = "Product not found"; } throw; } } return(response.ToHttpResponse()); }