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 }
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); } }
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); } }