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 SearchOrdersWithQuotesSearchesCorrectlyAndPreventsInjection() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow(); ordersRowA.OrderId = 1; ordersRowA.OrderName = "Order A's"; ordersRowA.Description = "Description A"; ordersRowA.Approver = "User"; ordersRowA.Creator = "User"; ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRowA); OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow(); ordersRowB.OrderId = 2; ordersRowB.OrderName = "Order B"; ordersRowB.Description = "Description B"; ordersRowB.Approver = "User"; ordersRowB.Creator = "User"; ordersRowB.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRowB); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ICollection <Order> orders = ordersService.SearchOrders("'"); Assert.AreEqual(1, orders.Count); IEnumerator <Order> enumerator = orders.GetEnumerator(); enumerator.Reset(); enumerator.MoveNext(); Assert.AreEqual(1, enumerator.Current.OrderId); }
public void DeleteRemovesOnlyExpectedOrderFromRepository() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow(); ordersRowA.OrderId = 3; ordersRowA.OrderName = "Order A"; ordersRowA.Description = "Description A"; ordersRowA.Approver = "User"; ordersRowA.Creator = "User"; ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRowA); OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow(); ordersRowB.OrderId = 2; ordersRowB.OrderName = "Order B"; ordersRowB.Description = "Description B"; ordersRowB.Approver = "User"; ordersRowB.Creator = "User"; ordersRowB.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRowB); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.DeleteOrder(3); Assert.AreEqual(1, ds.Orders.Count); Assert.AreEqual(2, ds.Orders[0].OrderId); }
public Order GetOrderWithDetails(int orderId) { OrdersManagementDataSet.OrdersRow ordersRow = repository.Orders.FindByOrderId(orderId); if (ordersRow == null) { return(null); } Order order = TranslateFromOrdersRowToOrderEntityWithDetails(ordersRow); return(order); }
private static void TranslateFromOrderEntityToOrdersRow(Order order, OrdersManagementDataSet.OrdersRow ordersRow) { ordersRow.CustomerId = order.CustomerId; ordersRow.Description = order.Description; ordersRow.Approver = order.Approver; ordersRow.Creator = order.Creator; ordersRow.OrderName = order.OrderName; ordersRow.OrderStatus = order.OrderStatus; ordersRow.ShipAddress = order.ShipAddress; ordersRow.ShipCity = order.ShipCity; ordersRow.ShipPostalCode = order.ShipPostalCode; ordersRow.ShipRegion = order.ShipRegion; }
private static void TranslateFromOrdersRowToOrderEntity(OrdersManagementDataSet.OrdersRow ordersRow, Order order) { order.OrderId = ordersRow.OrderId; order.CustomerId = ordersRow.IsCustomerIdNull() ? null : ordersRow.CustomerId; order.Description = ordersRow.IsDescriptionNull() ? null : ordersRow.Description; order.Approver = ordersRow.Approver; order.Creator = ordersRow.Creator; order.OrderName = ordersRow.IsOrderNameNull() ? null : ordersRow.OrderName; order.OrderStatus = ordersRow.OrderStatus; order.ShipAddress = ordersRow.IsShipAddressNull() ? null : ordersRow.ShipAddress; order.ShipCity = ordersRow.IsShipCityNull() ? null : ordersRow.ShipCity; order.ShipPostalCode = ordersRow.IsShipPostalCodeNull() ? null : ordersRow.ShipPostalCode; order.ShipRegion = ordersRow.IsShipRegionNull() ? null : ordersRow.ShipRegion; }
public void RejectOrder(int orderId) { OrdersManagementDataSet.OrdersRow ordersRow = repository.Orders.FindByOrderId(orderId); if (ordersRow == null) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.OrderIdNotExistsInRepository, orderId)); } if (ordersRow.OrderStatus != (int)OrderStatusEnum.Submitted) { throw new InvalidOperationException(Resources.OrderStatusInvalidForRejectOrder); } ordersRow.OrderStatus = (int)OrderStatusEnum.Rejected; }
private Order TranslateFromOrdersRowToOrderEntityWithDetails(OrdersManagementDataSet.OrdersRow ordersRow) { OrdersManagementDataSet.OrderDetailsRow[] detailRows = ordersRow.GetOrderDetailsRows(); Order order = new Order(); TranslateFromOrdersRowToOrderEntity(ordersRow, order); order.Details = new List <OrderDetail>(detailRows.Length); foreach (OrdersManagementDataSet.OrderDetailsRow detailRow in detailRows) { Product product = _productService.GetProductById(detailRow.ProductId); OrderDetail detail = new OrderDetail(detailRow.OrderId, detailRow.ProductId, detailRow.Quantity, product.UnitPrice.Value); order.Details.Add(detail); } return(order); }
public void GetSavedDraftOrdersDoesNotRetrieveOrderForApproversWhoAreNotTheCurrentLoggedInOne() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow(); ordersRow.Approver = "DifferentWhoCares"; ordersRow.Creator = "DifferentUser"; ordersRow.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRow); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); IList <Order> orders = ordersService.GetOrdersForApprover("CurrentUser"); Assert.IsNotNull(orders); Assert.AreEqual(0, orders.Count); }
public void SaveAsDraftCanStoreOrderWithoutDetailsInRepository() { Order order = new Order(); order.OrderId = 0; order.Approver = "11"; order.Creator = "11"; order.Details = null; OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.SaveAsDraft(order); OrdersManagementDataSet.OrdersRow row = ds.Orders.FindByOrderId(order.OrderId); Assert.IsNotNull(row); Assert.AreEqual(1, ds.Orders.Count); }
public void DeleteNonDraftOrderThrowsException() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow(); ordersRowA.OrderId = 1; ordersRowA.OrderName = "Order A"; ordersRowA.Description = "Description A"; ordersRowA.Approver = "User"; ordersRowA.Creator = "User"; ordersRowA.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRowA); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.DeleteOrder(1); }
public void DeleteOrder(int orderId) { OrdersManagementDataSet.OrdersRow ordersRow = repository.Orders.FindByOrderId(orderId); if (ordersRow == null) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Resources.OrderIdNotExistsInRepository, orderId)); } if (ordersRow.OrderStatus != (int)OrderStatusEnum.Draft) { throw new InvalidOperationException(Resources.OrderStatusInvalidForDeleteOrder); } OrdersRepository.Services.OrdersManagementDataSet.OrderDetailsRow[] details = ordersRow.GetOrderDetailsRows(); foreach (OrdersRepository.Services.OrdersManagementDataSet.OrderDetailsRow detail in details) { repository.OrderDetails.RemoveOrderDetailsRow(detail); } repository.Orders.RemoveOrdersRow(ordersRow); }
public void DeleteRemovesOrderFromRepository() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow(); ordersRowA.OrderId = 1; ordersRowA.OrderName = "Order A"; ordersRowA.Description = "Description A"; ordersRowA.Approver = "User"; ordersRowA.Creator = "User"; ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft; ds.Orders.AddOrdersRow(ordersRowA); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ordersService.DeleteOrder(1); Assert.AreEqual(0, ds.Orders.Count); }
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 GetSavedDraftOrdersDoesNotRetrieveOrdersWithoutDraftStatus() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow(); ordersRow.Approver = "WhoCares"; ordersRow.Creator = "CurrentUser"; ordersRow.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRow); ordersRow = ds.Orders.NewOrdersRow(); ordersRow.Approver = "WhoCares"; ordersRow.Creator = "CurrentUser"; ordersRow.OrderStatus = (int)OrderStatusEnum.Approved; ds.Orders.AddOrdersRow(ordersRow); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); IList <Order> orders = ordersService.GetSavedDraftOrders("CurrentUser"); Assert.IsNotNull(orders); Assert.AreEqual(0, orders.Count); }
public void SaveAsDraftWithExistingOrderUpdatesRepository() { Order order = GetPopulatedOrder(); order.OrderId = 0; OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, GetPopulatedProductService()); ordersService.SaveAsDraft(order); int orderID = order.OrderId; order = GetPopulatedOrder(); order.OrderId = orderID; order.OrderName = "MyNewName"; ordersService.SaveAsDraft(order); OrdersManagementDataSet.OrdersRow row = ds.Orders.FindByOrderId(orderID); Assert.IsNotNull(row); Assert.AreEqual("MyNewName", row.OrderName); Assert.AreEqual(1, ds.Orders.Count); }
public void SaveAsDraftStoresOrderInRepository() { Order order = GetPopulatedOrder(); order.OrderId = 0; OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersService ordersService = new OrdersService(ds, GetPopulatedProductService()); ordersService.SaveAsDraft(order); OrdersManagementDataSet.OrdersRow row = ds.Orders.FindByOrderId(order.OrderId); Assert.IsNotNull(row); Assert.AreEqual(1, ds.Orders.Count); Assert.AreEqual(order.OrderName, row.OrderName); Assert.AreEqual(order.CustomerId, row.CustomerId); Assert.AreEqual(order.Description, row.Description); Assert.AreEqual(order.Approver, row.Approver); Assert.AreEqual(order.OrderStatus, row.OrderStatus); Assert.AreEqual(order.ShipAddress, row.ShipAddress); Assert.AreEqual(order.ShipCity, row.ShipCity); Assert.AreEqual(order.ShipPostalCode, row.ShipPostalCode); Assert.AreEqual(order.ShipRegion, row.ShipRegion); }
public void SearchOrdersRetrievesOrdersByName() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow(); ordersRowA.OrderId = 1; ordersRowA.OrderName = "OrderA"; ordersRowA.Description = string.Empty; ordersRowA.Approver = "User"; ordersRowA.Creator = "User"; ordersRowA.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRowA); OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow(); ordersRowB.OrderId = 2; ordersRowB.OrderName = "OrderB"; ordersRowB.Description = string.Empty; ordersRowB.Approver = "User"; ordersRowB.Creator = "User"; ordersRowB.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRowB); ds.AcceptChanges(); OrdersService ordersService = new OrdersService(ds, new FakeProductService()); ICollection <Order> foundOrders = ordersService.SearchOrders("OrderA"); Assert.AreEqual(1, foundOrders.Count); IEnumerator <Order> enumerator = foundOrders.GetEnumerator(); enumerator.Reset(); enumerator.MoveNext(); Assert.AreEqual(1, enumerator.Current.OrderId); }
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); }
private static OrdersManagementDataSet InitOrdersManagementDataSet() { OrdersManagementDataSet ds = new OrdersManagementDataSet(); OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow(); ordersRowA.OrderId = 1; ordersRowA.OrderName = "Order A"; ordersRowA.Description = "Description A"; ordersRowA.Approver = "User"; ordersRowA.Creator = "User"; ordersRowA.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRowA); OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow(); ordersRowB.OrderId = 2; ordersRowB.OrderName = "Order B"; ordersRowB.Description = "Description B"; ordersRowB.Approver = "User"; ordersRowB.Creator = "User"; ordersRowB.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRowB); OrdersManagementDataSet.OrdersRow ordersRowC = ds.Orders.NewOrdersRow(); ordersRowC.OrderId = 3; ordersRowC.OrderName = "Order C"; ordersRowC.Description = "C"; ordersRowC.Approver = "User"; ordersRowC.Creator = "User"; ordersRowC.OrderStatus = (int)OrderStatusEnum.Submitted; ds.Orders.AddOrdersRow(ordersRowC); ds.AcceptChanges(); return(ds); }