Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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);
        }