public void OrderSystem_GetPurchaseOrderTest() { Cart cart = CreateShoppingCart(); cart.OrderForms[0].LineItems[0].Discounts.Add(OrderHelper.CreateLineItemDiscount()); ShipmentDiscount discount = new ShipmentDiscount(); discount.DiscountAmount = 10; discount.DiscountId = 1; discount.DiscountName = "asas"; discount.DiscountValue = 10; discount.DisplayMessage = "asdasd"; ShipmentDiscount discount2 = new ShipmentDiscount(); discount2.DiscountAmount = 10; discount2.DiscountId = 2; discount2.DiscountName = "asas"; discount2.DiscountValue = 10; discount2.DisplayMessage = "asdasd"; cart.OrderForms[0].Shipments[0].Discounts.Add(discount); cart.OrderForms[0].Shipments[0].Discounts.Add(discount2); int cartLineItemDiscountCount = cart.OrderForms[0].LineItems[0].Discounts.Count; PurchaseOrder po = cart.SaveAsPurchaseOrder(); po.AcceptChanges(); // Reload cart from database PurchaseOrder po2 = OrderContext.Current.GetPurchaseOrder(po.CustomerId, po.OrderGroupId); int po1ShipmentDiscountsCount = po.OrderForms[0].Shipments[0].Discounts.Count; int po2ShipmentDiscountsCount = po2.OrderForms[0].Shipments[0].Discounts.Count; int po2LineItemDiscountCount = po2.OrderForms[0].LineItems[0].Discounts.Count; // Now remove discounts and add them again foreach (ShipmentDiscount dis in po2.OrderForms[0].Shipments[0].Discounts) { dis.Delete(); } po2.OrderForms[0].Shipments[0].Discounts.Add(discount); po2.OrderForms[0].Shipments[0].Discounts.Add(discount2); po2.AcceptChanges(); // Remove created stuff cart.Delete(); cart.AcceptChanges(); po2.Delete(); po2.AcceptChanges(); Assert.AreEqual(po1ShipmentDiscountsCount, po2ShipmentDiscountsCount); Assert.AreEqual(cartLineItemDiscountCount, po2LineItemDiscountCount); }
/// <summary> /// Creates a line item. /// Code copied from OrderHelper.cs. /// </summary> /// <param name="random">A Random object seeded from the start of test method.</param> /// <returns></returns> private LineItem createLineItem(Random random, Guid shippingMethod, String shippingMethodName) { CatalogDto catalogs = CatalogContext.Current.GetCatalogDto(); CatalogEntryDto.CatalogEntryRow entry = null; bool found = false; string catalogName = String.Empty; int seed = 0; while (!found) { seed = random.Next(catalogs.Catalog.Count - 1); CatalogDto.CatalogRow catalog = catalogs.Catalog[seed]; catalogName = catalog.Name; // Get Catalog Nodes CatalogNodeDto nodes = CatalogContext.Current.GetCatalogNodesDto(catalogName); // Pick random node if (nodes.CatalogNode.Count > 0) { seed = random.Next(nodes.CatalogNode.Count - 1); CatalogNodeDto.CatalogNodeRow node = nodes.CatalogNode[seed]; CatalogEntryDto entryDto = CatalogContext.Current.GetCatalogEntriesDto(catalogName, node.CatalogNodeId); if (entryDto.CatalogEntry.Count > 0) { seed = random.Next(entryDto.CatalogEntry.Count - 1); entry = entryDto.CatalogEntry[seed]; if (entry.IsActive) { found = true; } } } } LineItem lineItem = new LineItem(); lineItem.DisplayName = entry.Name; lineItem.CatalogEntryId = entry.Code; lineItem.ShippingMethodId = shippingMethod; lineItem.ShippingMethodName = shippingMethodName; lineItem.ShippingAddressId = "Home"; // Choose a random quantity for chosen product. int quantity = random.Next(1, 7); lineItem.Quantity = quantity; lineItem.CatalogNode = catalogName; lineItem.Discounts.Add(OrderHelper.CreateLineItemDiscount()); return(lineItem); }