Example #1
0
        private ICatalogPromotionExpressionStepViewModel CreateCatalogPromotionExpressionStepViewModel(
            params KeyValuePair <string, object>[] parameters)
        {
            var repositoryFactory =
                new DSRepositoryFactory <IMarketingRepository, DSMarketingClient, MarketingEntityFactory>(
                    _marketingServiceUri);

            var appConfigRepositoryFactory =
                new DSRepositoryFactory <IAppConfigRepository, DSAppConfigClient, AppConfigEntityFactory>(
                    _appConfigServiceUri);

            var shippingRepositoryFactory =
                new DSRepositoryFactory <IShippingRepository, DSOrderClient, OrderEntityFactory>(
                    _orderServiceUri);

            var searchCategoryVmFactory =
                new TestCatalogViewModelFactory <ISearchCategoryViewModel>(_catalogServiceUri, _appConfigServiceUri);

            var searchItemVmFactory =
                new TestCatalogViewModelFactory <ISearchItemViewModel>(_catalogServiceUri, _appConfigServiceUri);

            var entityFactory = new MarketingEntityFactory();
            var item          = parameters.SingleOrDefault(x => x.Key == "item").Value as CartPromotion;

            var retval = new CatalogPromotionExpressionStepViewModel(appConfigRepositoryFactory, repositoryFactory, searchCategoryVmFactory, searchItemVmFactory, shippingRepositoryFactory, entityFactory, item);

            return(retval);
        }
Example #2
0
        private ICartPromotionCouponStepViewModel CreatePromotionCouponStepViewModel(
            params KeyValuePair <string, object>[] parameters)
        {
            var repositoryFactory =
                new DSRepositoryFactory <IMarketingRepository, DSMarketingClient, MarketingEntityFactory>(
                    _marketingServiceUri);

            var entityFactory = new MarketingEntityFactory();
            var item          = parameters.SingleOrDefault(x => x.Key == "item").Value as CartPromotion;

            var retval = new CartPromotionCouponStepViewModel(repositoryFactory, entityFactory, item);

            return(retval);
        }
Example #3
0
        public void Can_create_cartpromotionviewmodel_in_wizardmode()
        {
            var overviewVmFactory   = new TestMarketingViewModelFactory <ICartPromotionOverviewStepViewModel>(ServManager.GetUri(ServiceNameEnum.Marketing), ServManager.GetUri(ServiceNameEnum.Catalog), ServManager.GetUri(ServiceNameEnum.Store), ServManager.GetUri(ServiceNameEnum.Order), ServManager.GetUri(ServiceNameEnum.AppConfig));
            var couponsVmFactory    = new TestMarketingViewModelFactory <ICartPromotionCouponStepViewModel>(ServManager.GetUri(ServiceNameEnum.Marketing), ServManager.GetUri(ServiceNameEnum.Catalog), ServManager.GetUri(ServiceNameEnum.Store), ServManager.GetUri(ServiceNameEnum.Order), ServManager.GetUri(ServiceNameEnum.AppConfig));
            var conditionsVmFactory = new TestMarketingViewModelFactory <ICartPromotionExpressionStepViewModel>(ServManager.GetUri(ServiceNameEnum.Marketing), ServManager.GetUri(ServiceNameEnum.Catalog), ServManager.GetUri(ServiceNameEnum.Store), ServManager.GetUri(ServiceNameEnum.Order), ServManager.GetUri(ServiceNameEnum.AppConfig));

            var repositoryFactory =
                new DSRepositoryFactory <IMarketingRepository, DSMarketingClient, MarketingEntityFactory>(
                    ServManager.GetUri(ServiceNameEnum.Marketing));


            var entityFactory = new MarketingEntityFactory();
            var item          = entityFactory.CreateEntity <CartPromotion>();

            //create viewmodel in wizardmode
            var createCartPromotionViewModel = new CreateCartPromotionViewModel(overviewVmFactory, conditionsVmFactory, couponsVmFactory, item);

            Assert.NotNull(createCartPromotionViewModel);
            Assert.False(createCartPromotionViewModel.AllRegisteredSteps[0].IsValid);
            Assert.False(createCartPromotionViewModel.AllRegisteredSteps[1].IsValid);
            Assert.True(createCartPromotionViewModel.AllRegisteredSteps[2].IsValid);

            //fill the first step
            var firstStep = createCartPromotionViewModel.AllRegisteredSteps[0] as CartPromotionOverviewStepViewModel;

            Assert.NotNull(firstStep);
            firstStep.InitializeForOpen();
            (firstStep.InnerItem as CartPromotion).StoreId = "TestStore";
            firstStep.InnerItem.StartDate   = DateTime.UtcNow;
            firstStep.InnerItem.Name        = "NewTestName";
            firstStep.InnerItem.Description = "NewTestDescription";
            firstStep.InnerItem.Priority    = 0;

            Assert.True(firstStep.IsValid);

            //fill the 2 step (expression builder)
            var secondStep =
                createCartPromotionViewModel.AllRegisteredSteps[1] as CartPromotionExpressionStepViewModel;

            Assert.NotNull(secondStep);
            secondStep.InitializeForOpen();
            var expression = CartPromotionExpressionBuilderHelper.BuildCartPromotionExpressionBuilder(
                (CartPromotionExpressionBlock)secondStep.ExpressionElementBlock)
                             .AddEveryoneEligibility(secondStep)
                             .AddNumItemsInCartElement(secondStep, false).GetChild();

            //.AddConditionAddOrBlock(secondStep).GetChild();

            secondStep.ExpressionElementBlock.Children[0] = expression;

            Assert.False(secondStep.IsValid);

            //fill the 3 step
            var thirdStep =
                createCartPromotionViewModel.AllRegisteredSteps[2] as
                CartPromotionCouponStepViewModel;

            Assert.NotNull(thirdStep);
            thirdStep.InitializeForOpen();
            thirdStep.HasCoupon = true;
            Assert.False(createCartPromotionViewModel.AllRegisteredSteps[2].IsValid);
            thirdStep.InnerItem.Coupon = new Coupon()
            {
                Code = "testCoupon"
            };
            Assert.True(createCartPromotionViewModel.AllRegisteredSteps[2].IsValid);

            Assert.True(thirdStep.IsValid);

            createCartPromotionViewModel.PrepareAndSave();

            using (var repository = repositoryFactory.GetRepositoryInstance())
            {
                var itemFromDb =
                    repository.Promotions.Where(
                        s => s.PromotionId == firstStep.InnerItem.PromotionId)
                    .Expand(cpg => cpg.Rewards)
                    .SingleOrDefault();

                Assert.True(itemFromDb.Name == "NewTestName");
                Assert.True(itemFromDb.Description == "NewTestDescription");
                Assert.NotNull(itemFromDb.PredicateSerialized);
                Assert.NotNull(itemFromDb.PredicateVisualTreeSerialized);
            }
        }