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