コード例 #1
0
        public void Can_RetrieveProductOptions_From_ProductInIndex()
        {
            //// Arrange

            var merchello = new MerchelloHelper(MerchelloContext.Services);

            var productService = PreTestDataWorker.ProductService;

            var product = MockProductDataMaker.MockProductCollectionForInserting(1).First();

            product.ProductOptions.Add(new ProductOption("Color"));
            product.ProductOptions.First(x => x.Name == "Color").Choices.Add(new ProductAttribute("Blue", "Blue"));
            product.ProductOptions.First(x => x.Name == "Color").Choices.Add(new ProductAttribute("Red", "Red"));
            product.ProductOptions.First(x => x.Name == "Color").Choices.Add(new ProductAttribute("Green", "Green"));
            product.ProductOptions.Add(new ProductOption("Size"));
            product.ProductOptions.First(x => x.Name == "Size").Choices.Add(new ProductAttribute("Small", "Sm"));
            product.ProductOptions.First(x => x.Name == "Size").Choices.Add(new ProductAttribute("Medium", "Med"));
            product.ProductOptions.First(x => x.Name == "Size").Choices.Add(new ProductAttribute("Large", "Lg"));
            product.ProductOptions.First(x => x.Name == "Size").Choices.Add(new ProductAttribute("X-Large", "XL"));
            product.Height         = 11M;
            product.Width          = 11M;
            product.Length         = 11M;
            product.CostOfGoods    = 15M;
            product.OnSale         = true;
            product.SalePrice      = 18M;
            product.TrackInventory = true;
            product.AddToCatalogInventory(_warehouse.WarehouseCatalogs.First());
            productService.Save(product);

            foreach (var variant in product.ProductVariants)
            {
                variant.CatalogInventories.First().Count = 1;
            }
            productService.Save(product);

            foreach (var p in product.ProductVariants)
            {
                Assert.AreEqual(1, p.TotalInventoryCount, "Preindexed product variant count");
            }

            _provider.AddProductToIndex(product);

            //// Act
            var productDisplay = merchello.Query.Product.GetByKey(product.Key);

            //// Assert
            Assert.NotNull(productDisplay);
            Assert.IsTrue(productDisplay.ProductOptions.Any());

            //http://issues.merchello.com/youtrack/issue/M-604
            foreach (var variant in productDisplay.ProductVariants)
            {
                Assert.AreEqual(1, variant.TotalInventoryCount);
            }
            Assert.AreEqual(12, productDisplay.TotalInventoryCount, "Total inventory count failed");
        }
コード例 #2
0
        public void Can_RetrieveProductOptions_From_ProductInIndex()
        {
            //// Arrange

            var merchello = new MerchelloHelper(MerchelloContext.Services);

            var productService = PreTestDataWorker.ProductService;

            var product = MockProductDataMaker.MockProductCollectionForInserting(1).First();

            product.ProductOptions.Add(new ProductOption("Color"));
            product.ProductOptions.First(x => x.Name == "Color").Choices.Add(new ProductAttribute("Blue", "Blue"));
            product.ProductOptions.First(x => x.Name == "Color").Choices.Add(new ProductAttribute("Red", "Red"));
            product.ProductOptions.First(x => x.Name == "Color").Choices.Add(new ProductAttribute("Green", "Green"));
            product.ProductOptions.Add(new ProductOption("Size"));
            product.ProductOptions.First(x => x.Name == "Size").Choices.Add(new ProductAttribute("Small", "Sm"));
            product.ProductOptions.First(x => x.Name == "Size").Choices.Add(new ProductAttribute("Medium", "Med"));
            product.ProductOptions.First(x => x.Name == "Size").Choices.Add(new ProductAttribute("Large", "Lg"));
            product.ProductOptions.First(x => x.Name == "Size").Choices.Add(new ProductAttribute("X-Large", "XL"));
            product.Height      = 11M;
            product.Width       = 11M;
            product.Length      = 11M;
            product.CostOfGoods = 15M;
            product.OnSale      = true;
            product.SalePrice   = 18M;
            productService.Save(product);


            _provider.AddProductToIndex(product);

            //// Act
            var productDisplay = merchello.Query.Product.GetByKey(product.Key);

            //// Assert
            Assert.NotNull(productDisplay);
            Assert.IsTrue(productDisplay.ProductOptions.Any());
        }
コード例 #3
0
 private static void IndexProduct(IProduct product)
 {
     ProductIndexer.AddProductToIndex(product);
 }