public void Index_WhenAvailableSizesContainsItems_ShouldSetValueToItemValue() { FashionProduct fashionProduct = null; FashionVariant fashionVariant = null; ProductController productController = null; ItemCollection <string> sizes = null; ActionResult actionResult = null; // Setup { sizes = new ItemCollection <string>() { "medium" }; fashionProduct = CreateFashionProduct(); fashionVariant = CreateFashionVariant("medium", "red"); SetRelation(fashionProduct, fashionVariant); MockPrices(); productController = CreateController(); } // Execute { actionResult = productController.Index(fashionProduct, fashionVariant.Code); } // Assert { var model = (FashionProductViewModel)((ViewResultBase)actionResult).Model; var expectedSizes = String.Join(";", sizes); var modelSizeValues = String.Join(";", model.Sizes.Select(x => x.Value)); Assert.AreEqual <string>(expectedSizes, modelSizeValues); } }
private static bool TryGetFashionVariantByColorAndSize(IEnumerable <FashionVariant> variations, string color, string size, out FashionVariant variation) { variation = variations.FirstOrDefault(x => (string.IsNullOrEmpty(color) || x.Color.Equals(color, StringComparison.OrdinalIgnoreCase)) && (string.IsNullOrEmpty(size) || x.Size.Equals(size, StringComparison.OrdinalIgnoreCase))); return(variation != null); }
private static bool TryGetFashionVariant(IEnumerable <FashionVariant> variations, string variationCode, out FashionVariant variation) { variation = !string.IsNullOrEmpty(variationCode) ? variations.FirstOrDefault(x => x.Code == variationCode) : variations.FirstOrDefault(); return(variation != null); }
private static void SetSize(FashionVariant fashionVariant, string size) { fashionVariant.Size = size; }
private static void SetColor(FashionVariant fashionVariant, string color) { fashionVariant.Color = color; }
private IEnumerable <string> GetAvailableSizes(FashionProduct product, FashionVariant entry) { return(product != null? _catalogContentService.GetVariants <FashionVariant>(product).Where(x => x.Color.Equals(entry.Color, StringComparison.OrdinalIgnoreCase)).Select(x => x.Size) : Enumerable.Empty <string>()); }