示例#1
0
        public void can_display_item()
        {
            var session = CustomerSessionService.CustomerSession;

            //Generate data
            const string catalogId = "testcatlog";

            Item[] items = null;
            CreateFullGraphCatalog(catalogId, ref items);
            SqlStoreSampleDatabaseInitializer.CreateFulfillmentCenter((EFStoreRepository)StoreRepository);
            SqlStoreSampleDatabaseInitializer.CreateStores((EFStoreRepository)StoreRepository);

            //Modify data
            var item = items.First();

            item.IsBuyable   = true;
            item.MaxQuantity = 10;
            item.MinQuantity = 1;
            CatalogRepository.Update(item);
            CatalogRepository.UnitOfWork.Commit();

            var priceListAssigment = GeneratePrices(items, catalogId);
            var price = priceListAssigment.Pricelist.Prices.First(x => x.ItemId == item.ItemId);

            //Add price discount 50%
            const int discountPercent = 50;
            var       promotion       = AddCatalogPromotion(catalogId, string.Format(Resources.PromotionExpression_Item0, item.ItemId));

            AddCatalogReward(promotion, discountPercent, RewardAmountType.Relative);


            //var catalog = CatalogRepository.Catalogs.First(x => x.CatalogId == item.CatalogId);
            var category = CatalogRepository.CategoryItemRelations.First(x => x.ItemId == item.ItemId);

            var priceListHelper = Locator.GetInstance <PriceListClient>();

            session.Pricelists = priceListHelper.GetPriceListStack(catalogId, session.Currency, session.GetCustomerTagSet(), false);
            Assert.Equal(priceListAssigment.Pricelist.PricelistId, session.Pricelists[0]);

            session.CatalogId  = catalogId;
            session.CategoryId = category.CategoryId;

            var controller = (CatalogController)DependencyResolver.Current.GetService(typeof(CatalogController));
            var result     = controller.DisplayItem(item.Code) as ViewResult;
            var model      = result.Model as CatalogItemWithPriceModel;

            Assert.Equal(result.ViewName, "Item");                //Default view
            Assert.NotNull(model);
            Assert.NotNull(model.Price);                          // price returned
            Assert.Equal(model.Price.Currency, session.Currency); // curecncy matches
            Assert.Equal(model.Price.SalePrice, price.Sale.Value * discountPercent * 0.01m);
            Assert.True(model.CatalogItem.ItemId.Equals(item.ItemId), "Requested and returned itemId do not match");
            Assert.True(model.Availability.IsAvailable, "Item is not available");             //item is available
        }
示例#2
0
        public override void SetupDatabase(SampleDataLevel sampleDataLevel)
        {
            using (var db = new StoreRepositoryImpl("VirtoCommerce"))
            {
                IDatabaseInitializer<StoreRepositoryImpl> initializer;

                switch (sampleDataLevel)
                {
                    case SampleDataLevel.Full:
                    case SampleDataLevel.Reduced:
                        initializer = new SqlStoreSampleDatabaseInitializer(_container.Resolve<ISettingsManager>());
                        break;
                    default:
                        initializer = new SetupDatabaseInitializer<StoreRepositoryImpl, Data.Migrations.Configuration>();
                        break;
                }

                initializer.InitializeDatabase(db);
            }
        }
示例#3
0
        public override void SetupDatabase(SampleDataLevel sampleDataLevel)
        {
            using (var db = new StoreRepositoryImpl("VirtoCommerce"))
            {
                IDatabaseInitializer <StoreRepositoryImpl> initializer;

                switch (sampleDataLevel)
                {
                case SampleDataLevel.Full:
                case SampleDataLevel.Reduced:
                    initializer = new SqlStoreSampleDatabaseInitializer(_container.Resolve <ISettingsManager>());
                    break;

                default:
                    initializer = new SetupDatabaseInitializer <StoreRepositoryImpl, Data.Migrations.Configuration>();
                    break;
                }

                initializer.InitializeDatabase(db);
            }
        }