public ProductVariantDraftBuilder attributes(final AttributeDraft ... attributes) { return attributes(asList(attributes)); }
public ProductVariantDraftBuilder attributes(final AttributeDraft ... attributes) { return attributes(asList(attributes)); }
public ProductVariantDraftBuilder attributes(final Attribute ... attributes) { return attributes(Arrays.asList(attributes)); }
public ProductVariantDraftBuilder attributes(final AttributeDraft ... attributes) { return attributes(asList(attributes)); }
public ProductVariantDraftBuilder attributes(final Attribute ... attributes) { return attributes(Arrays.asList(attributes)); }
public ProductVariantDraftBuilder plusAttribute(final AttributeDraft attribute) { return attributes != null ? attributes(listOf(attributes, attribute)) : attributes(attribute); } }
public ProductVariantDraftBuilder plusAttribute(final AttributeDraft attribute) { return attributes != null ? attributes(listOf(attributes, attribute)) : attributes(attribute); } }
public ProductVariantDraftBuilder plusAttribute(final Attribute attribute) { return attributes(ListUtils.listOf(attributes, attribute)); }
public ProductVariantDraftBuilder plusAttribute(final AttributeDraft attribute) { return attributes(ListUtils.listOf(attributes, attribute)); }
public ProductVariantDraftBuilder plusAttribute(final Attribute attribute) { return attributes(ListUtils.listOf(attributes, attribute)); }
public ProductVariantDraftDsl withAttributes(@Nullable final List<AttributeDraft> attributes) { return newBuilder().attributes(attributes).build(); }
@Test public void ofTemplateShouldCopyAllProperties() throws Exception { final ProductVariantDraftDsl template = ProductVariantDraftBuilder.of() .attributes(Collections.emptyList()) .assets(Collections.emptyList()) .key(randomString()) .sku(randomString()) .prices(Collections.emptyList()) .build(); final ProductVariantDraftDsl copy = ProductVariantDraftBuilder.of(template).build(); assertThat(copy).isEqualTo(template); }
private ProductVariantDraft variantDraft() { final AttributeDraft attributeDraft = AttributeDraft.of(ATTR_NAME, AttributeAccess.ofLocalizedEnumValueSet(), new HashSet<>(ALL_ATTRIBUTE_VALUES)); return ProductVariantDraftBuilder.of() .attributes(attributeDraft) .sku(randomKey()) .build(); }
@Test public void queryBySku() { final String sku = "sku2000"; final ProductVariantDraft masterVariant = ProductVariantDraftBuilder.of() .sku(sku) .attributes(Sizes.ATTRIBUTE.draftOf(Sizes.S), Colors.ATTRIBUTE.draftOf(Colors.GREEN)) .build(); final ProductDraft productDraft = ProductDraftBuilder.of(productType, en("foo"), en("foo-slug"), masterVariant).build(); client().executeBlocking(ProductCreateCommand.of(productDraft)); final PagedQueryResult<Product> result = client().executeBlocking(ProductQuery.of().bySku(sku, STAGED)); assertThat(result.getResults()).hasSize(1); assertThat(result.getResults().get(0).getMasterData().getStaged().getMasterVariant().getSku()).contains(sku); assertThat(result.getResults().get(0).getMasterData().getStaged().getMasterVariant().findAttribute(Colors.ATTRIBUTE)).contains(Colors.GREEN); assertThat(result.getResults().get(0).getMasterData().getStaged().getMasterVariant().findAttribute(Sizes.ATTRIBUTE)).contains(Sizes.S); }
public static void withProductWithProductReference(final BlockingSphereClient client, final BiConsumer<Product, Product> consumer) { withProduct(client, referencedProduct -> { final ProductType productType = productReferenceProductType(client); final ProductVariantDraft productVariantDraft = ProductVariantDraftBuilder.of().attributes(AttributeDraft.of("productreference", referencedProduct.toReference())).build(); final ProductDraft productDraft = ProductDraftBuilder.of(productType, en("product reference name 1"), randomSlug(), productVariantDraft).build(); final Product product = client.executeBlocking(ProductCreateCommand.of(productDraft)); consumer.accept(product, referencedProduct); client.executeBlocking(ProductDeleteCommand.of(product)); }); }
private static Product createTestProduct(final ProductType productType, final String germanName, final String englishName, final String color, final int size1, final int size2, final String sku, final String slug) { final LocalizedString name = LocalizedString.of(GERMAN, germanName, ENGLISH, englishName); final ProductVariantDraft masterVariant = ProductVariantDraftBuilder.of() .attributes(AttributeDraft.of(ATTR_NAME_SIZE, size1), AttributeDraft.of(ATTR_NAME_COLOR, color)) .price(PriceDraft.of(new BigDecimal("23.45"), EUR)) .sku(sku) .key(slug + "-master-variant-key") .build(); final ProductVariantDraft variant = ProductVariantDraftBuilder.of() .attributes(AttributeDraft.of(ATTR_NAME_SIZE, size2)) .price(PriceDraft.of(new BigDecimal("27.45"), EUR)) .key(slug + "-variant2-key") .build(); final ProductDraft productDraft = ProductDraftBuilder.of(productType, name, LocalizedString.of(ENGLISH, slug), masterVariant) .plusVariants(variant) .key(slug + "-product-key") .build(); return client().executeBlocking(ProductCreateCommand.of(productDraft)); }
@Test public void productAttribute() { checkFilter(builder -> { final ProductVariantDraft masterVariant = ProductVariantDraftBuilder.of(builder.getMasterVariant()) .attributes(AttributeDraft.of("stringfield", "hello")) .build(); return builder.masterVariant(masterVariant); }, m -> m.allVariants().attribute().ofString("stringfield")); }
@Override public ProductDraft get() { final ProductVariantDraft masterVariant = ProductVariantDraftBuilder.of() .attributes(Sizes.ATTRIBUTE.draftOf(Sizes.S), Colors.ATTRIBUTE.draftOf(Colors.GREEN)) .sku(UUID.randomUUID().toString()) .build(); final LocalizedString slug = en(name).slugifiedUnique(); return ProductDraftBuilder.of(productType, en(name), slug, masterVariant) .description(en(name)) .metaTitle(en("cotton t-shirt")) .metaDescription(en("cotton t-shirt description")) .metaKeywords(en("cotton, t-shirt, clothes")) .build(); }
private static Product createEvilTestProduct(final ProductType productType, final String germanName, final String evilValue, final String sku) { final LocalizedString name = LocalizedString.of(GERMAN, germanName); final ProductVariantDraft masterVariant = ProductVariantDraftBuilder.of() .attributes(AttributeDraft.of(ATTR_NAME_EVIL, evilValue)) .sku(sku) .build(); final ProductDraft productDraft = ProductDraftBuilder.of(productType, name, name.slugifiedUnique(), masterVariant).build(); return client().executeBlocking(ProductCreateCommand.of(productDraft)); } }
@Test public void localizedEnumValue() throws Exception { final String productTypeName = ProductAttributeFlowIntegrationTest.class.getSimpleName() + "lenum"; final List<LocalizedEnumValue> localizedEnumValues = asList(A, B, C); final ProductTypeDraft draft = ProductTypeDraft.of(randomKey(), productTypeName, "", asList(AttributeDefinitionBuilder.of(LOCALIZED_ENUM_ATTR, randomSlug(), LocalizedEnumAttributeType.of(localizedEnumValues)).build())); final ProductTypeQuery query = ProductTypeQuery.of().byName(productTypeName); final ProductTypeCreateCommand createCommand = ProductTypeCreateCommand.of(draft); final ProductType productType = getOrCreate(createCommand, query); final NamedAttributeAccess<LocalizedEnumValue> namesAccess = AttributeAccess.ofLocalizedEnumValue().ofName(LOCALIZED_ENUM_ATTR); final ProductVariantDraft masterVariant = ProductVariantDraftBuilder.of().attributes(AttributeDraft.of(namesAccess, B)).build(); final ProductDraft productDraft = ProductDraftBuilder.of(productType, randomSlug(), randomSlug(), masterVariant).build(); final Product product = client().executeBlocking(ProductCreateCommand.of(productDraft)); assertThat(extractAttribute(product, namesAccess)).contains(B); final Product updatedProduct = client().executeBlocking(ProductUpdateCommand.of(product, SetAttribute.of(1, namesAccess, C))); assertThat(extractAttribute(updatedProduct, namesAccess)).contains(C); final NamedAttributeAccess<LocalizedEnumValue> getterSetter = AttributeAccess.ofLocalizedEnumValue().ofName(LOCALIZED_ENUM_ATTR); final Attribute attribute = Attribute.of(getterSetter, C); final LocalizedEnumValue value = attribute.getValue(AttributeAccess.ofLocalizedEnumValue()); assertThat(value).isEqualTo(C); }