Esempio n. 1
0
        /// <summary>
        /// Gets a list of LineItemDetailViewModel from a list of overture LineItem objects.
        /// </summary>
        public virtual IEnumerable <LineItemDetailViewModel> CreateViewModel(CreateListOfLineItemDetailViewModelParam param)
        {
            if (param.LineItems == null)
            {
                yield break;
            }

            var imgDictionary = LineItemHelper.BuildImageDictionaryFor(param.ImageInfo.ImageUrls);

            var processedCart = param.Cart as ProcessedCart;
            var preMapAction  = processedCart == null
                ? new Action <LineItem>(li => { })
                : li => LineItemValidationProvider.ValidateLineItem(processedCart, li);

            foreach (var lineItem in param.LineItems)
            {
                var vm = GetLineItemDetailViewModel(new CreateLineItemDetailViewModelParam
                {
                    PreMapAction    = preMapAction,
                    LineItem        = lineItem,
                    CultureInfo     = param.CultureInfo,
                    ImageDictionary = imgDictionary,
                    BaseUrl         = param.BaseUrl
                });

                yield return(vm);
            }
        }
Esempio n. 2
0
        public void WHEN_ListPrice_Is_Greater_Than_DefaultListPrice_IsOnSale_SHOULD_Be_False()
        {
            var factory = Container.CreateInstance <LineItemViewModelFactory>();

            var param = new CreateListOfLineItemDetailViewModelParam()
            {
                Cart      = new ProcessedCart(),
                LineItems = new List <LineItem> {
                    new LineItem {
                        DefaultPrice = 9.99m, CurrentPrice = 9.99m
                    }
                },
                CultureInfo = new CultureInfo("en-CA"),
                ImageInfo   = new ProductImageInfo {
                    ImageUrls = new List <ProductMainImage>()
                },
                BaseUrl = "http://orckestra.com/"
            };

            var viewModels = factory.CreateViewModel(param);

            var firstVm = viewModels.First();

            firstVm.IsOnSale.Should().BeFalse();
        }
Esempio n. 3
0
        public void WHEN_DiscountAmount_Is_Zero_IsPriceDiscounted_SHOULD_Be_False()
        {
            var factory = Container.CreateInstance <LineItemViewModelFactory>();

            var param = new CreateListOfLineItemDetailViewModelParam()
            {
                Cart      = new ProcessedCart(),
                LineItems = new List <LineItem> {
                    new LineItem {
                        DiscountAmount = 0
                    }
                },
                CultureInfo = new CultureInfo("en-CA"),
                ImageInfo   = new ProductImageInfo {
                    ImageUrls = new List <ProductMainImage>()
                },
                BaseUrl = "http://orckestra.com/"
            };

            var viewModels = factory.CreateViewModel(param);

            var firstVm = viewModels.First();

            firstVm.IsPriceDiscounted.Should().BeFalse();
        }
Esempio n. 4
0
        public void WHEN_cart_has_lineItem_SHOULD_map_first_shipment_vm()
        {
            //Arrange
            Container.Use(ViewModelMapperFactory.CreateFake(typeof(LineItemDetailViewModel).Assembly));


            var lineItem = new LineItem
            {
                Quantity     = GetRandom.Int(),
                ProductId    = GetRandom.String(32),
                VariantId    = GetRandom.String(32),
                Id           = Guid.NewGuid(),
                Total        = GetRandom.Decimal(),
                DefaultPrice = GetRandom.PositiveDecimal(2000000),
                CurrentPrice = new decimal()
            };

            var param = new CreateListOfLineItemDetailViewModelParam()
            {
                Cart      = new ProcessedCart(),
                LineItems = new List <LineItem> {
                    lineItem
                },
                CultureInfo = new CultureInfo("en-CA"),
                ImageInfo   = new ProductImageInfo {
                    ImageUrls = new List <ProductMainImage>()
                },
                BaseUrl = "http://orckestra.com/"
            };


            var sut = Container.CreateInstance <LineItemViewModelFactory>();

            //Act
            var vm = sut.CreateViewModel(param);

            //Assert
            vm.Should().NotBeNullOrEmpty();
            vm.Should().HaveSameCount(param.LineItems);
            var collection = vm.ToList();

            for (int i = 0; i < collection.Count; i++)
            {
                var liVm = collection[i];

                liVm.Should().NotBeNull();
                liVm.Id.Should().Be(lineItem.Id);
                liVm.ProductId.Should().Be(lineItem.ProductId);
                liVm.VariantId.Should().Be(lineItem.VariantId);
                liVm.ListPrice.Should().NotBeNullOrWhiteSpace();
                liVm.DefaultListPrice.Should().NotBeNullOrWhiteSpace();
                liVm.Quantity.Should().Be(lineItem.Quantity);
                liVm.Total.Should().NotBeNullOrWhiteSpace();

                liVm.ProductSummary.Should().NotBeNull();
                liVm.ProductSummary.DisplayName.Should().Be(lineItem.ProductSummary.DisplayName);
            }
        }