public void GetSavedDraftOrdersRetrievesOrdersWithDraftStatusAndForCurrentUser() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow(); ordersRow.Approver = "WhoCares"; ordersRow.Creator = "CurrentUser"; ordersRow.OrderName = "Test Order"; ordersRow.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRow); OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow(); detailRow.OrdersRow = ordersRow; detailRow.ProductId = 11; detailRow.Quantity = 3; ds.OrderDetails.AddOrderDetailsRow(detailRow); ds.AcceptChanges(); FakeProductService productService = new FakeProductService(); productService.Products.Add(new Product(11, null, null, 2.99m, null)); OrdersService ordersService = new OrdersService(ds, productService); IList <Order> orders = ordersService.GetSavedDraftOrders("CurrentUser"); Assert.IsNotNull(orders); Assert.AreEqual(1, orders.Count); Order order = orders[0]; Assert.AreEqual("Test Order", order.OrderName); Assert.IsNotNull(order); Assert.AreEqual(1, order.Details.Count); Assert.AreEqual((short)3, order.Details[0].Quantity); Assert.AreEqual(2.99m, order.Details[0].UnitPrice); }
public void SaveAsDraftWithExistingOrderUpdatesDetailsInRepository() { Order order = GetPopulatedOrder(); order.OrderId = 0; order.Details.Add(new OrderDetail(0, 10, 1, 1.99m)); OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, GetPopulatedProductService()); ordersService.SaveAsDraft(order); int orderID = order.OrderId; order = GetPopulatedOrder(); order.OrderId = orderID; order.Details.Add(new OrderDetail(0, 20, 3, 2.50m)); int detailsCount = order.Details.Count; ordersService.SaveAsDraft(order); Assert.AreEqual(detailsCount, ds.OrderDetails.Count); OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.FindByOrderIdProductId(order.OrderId, 20); Assert.IsNotNull(detailRow); Assert.AreEqual((short)3, detailRow.Quantity); OrdersManagementDataSet.OrderDetailsRow deletedDetailRow = ds.OrderDetails.FindByOrderIdProductId(order.OrderId, 10); Assert.IsNull(deletedDetailRow); }
public void SubmitOrderAddsOrderDetails() { Order order = GetPopulatedOrder(); order.OrderId = 0; OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); order.Details.Add(new OrderDetail(0, 10, 1, 1.99m)); int detailsCount = order.Details.Count; ordersService.SaveAsDraft(order); Assert.AreEqual(detailsCount, ds.OrderDetails.Count); OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.FindByOrderIdProductId(order.OrderId, 10); Assert.IsNotNull(detailRow); Assert.AreEqual((short)1, detailRow.Quantity); }
private int PersistOrder(Order order, int newStatus) { OrdersManagementDataSet.OrdersRow ordersRow; if (order.OrderId <= 0) { ordersRow = repository.Orders.NewOrdersRow(); } else { ordersRow = repository.Orders.FindByOrderId(order.OrderId); foreach (OrdersManagementDataSet.OrderDetailsRow detailRow in ordersRow.GetOrderDetailsRows()) { detailRow.Delete(); } } TranslateFromOrderEntityToOrdersRow(order, ordersRow); ordersRow.OrderStatus = newStatus; if (order.Details != null) { foreach (OrderDetail detail in order.Details) { OrdersManagementDataSet.OrderDetailsRow detailRow = repository.OrderDetails.NewOrderDetailsRow(); detailRow.OrdersRow = ordersRow; detailRow.ProductId = detail.ProductId; detailRow.Quantity = detail.Quantity; repository.OrderDetails.AddOrderDetailsRow(detailRow); } } if (order.OrderId <= 0) { repository.Orders.AddOrdersRow(ordersRow); } int newOrderId = ordersRow.OrderId; return(newOrderId); }
public void GetOrderWithDetailsGetsBothOrderAndDetails() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow(); ordersRow.CustomerId = "11"; ordersRow.Description = "MyDescription"; ordersRow.Approver = "MyEmployeeId"; ordersRow.Creator = "MyEmployeeId"; ordersRow.OrderName = "MyOrderName"; ordersRow.OrderStatus = (int)OrderStatusEnum.Draft; ordersRow.ShipAddress = "MyShipAddress"; ordersRow.ShipCity = "MyShipCity"; ordersRow.ShipPostalCode = "MyZip"; ordersRow.ShipRegion = "MyShipRegion"; ds.Orders.AddOrdersRow(ordersRow); OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow(); detailRow.OrdersRow = ordersRow; detailRow.ProductId = 11; detailRow.Quantity = 3; ds.OrderDetails.AddOrderDetailsRow(detailRow); ds.AcceptChanges(); FakeProductService productService = new FakeProductService(); productService.Products.Add(new Product(11, null, null, 2.99m, null)); OrdersService ordersService = new OrdersService(ds, productService); Order order = ordersService.GetOrderWithDetails(ordersRow.OrderId); Assert.IsNotNull(order); Assert.AreEqual(ordersRow.OrderId, order.OrderId); Assert.AreEqual("MyDescription", order.Description); Assert.IsNotNull(order.Details); Assert.AreEqual(1, order.Details.Count); Assert.AreEqual((short)3, order.Details[0].Quantity); Assert.AreEqual(2.99m, order.Details[0].UnitPrice); }
public void DeleteRemovesOrderDetailsFromRepository() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow(); ordersRow.OrderId = 2; ordersRow.Approver = "CurrentUser"; ordersRow.Creator = "CurrentUser"; ordersRow.OrderName = "Test Order"; ordersRow.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRow); OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow(); detailRow.OrdersRow = ordersRow; detailRow.ProductId = 11; detailRow.Quantity = 3; ds.OrderDetails.AddOrderDetailsRow(detailRow); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.DeleteOrder(2); Assert.AreEqual(0, ds.Orders.Count); Assert.AreEqual(0, ds.OrderDetails.Count); }