public ProductDraftDsl withKey(@Nullable final String key) { return newBuilder().key(key).build(); }
@Test public void productUpdateByKey() throws Exception { final String key = randomKey(); withUpdateableProduct(client(), builder -> builder.key(key), product -> { final LocalizedString newName = LocalizedString.ofEnglish("newName " + RANDOM.nextInt()); final ProductUpdateCommand cmd = ProductUpdateCommand.ofKey(key, product.getVersion(), ChangeName.of(newName)); final Product updatedProduct = client().executeBlocking(cmd); assertThat(updatedProduct.getMasterData().getStaged().getName()).isEqualTo(newName); assertThat(updatedProduct.getKey()).isEqualTo(key); return updatedProduct; }); }
@Test public void execution() { final String key = randomKey(); ProductFixtures.withProduct(client(), builder -> builder.key(key), product -> { final ProductByKeyGet request = ProductByKeyGet.of(key); final Product loadedProduct = client().executeBlocking(request); assertThat(loadedProduct.getId()).isEqualTo(product.getId()); }); } }
@Test public void execution() { final String key = randomKey(); ProductFixtures.withProduct(client(), builder -> builder.key(key), product -> { final ProductProjectionByKeyGet request = ProductProjectionByKeyGet.ofStaged(key); final ProductProjection productProjection = client().executeBlocking(request); assertThat(productProjection.getId()).isEqualTo(product.getId()); }); } }
.categoryOrderHints(categoryOrderHints) .publish(true) .key(key); final ProductDraft productDraft = productDraftBuilder.build(); assertThat(productDraft.getName()).isEqualTo(name);
private void withProductOfPrices(final List<PriceDraft> priceDrafts, final Consumer<Product> productConsumer) { final ProductVariantDraft masterVariant = ProductVariantDraftBuilder.of() .prices(priceDrafts) .build(); final ProductDraft productDraft = ProductDraftBuilder.of(productType, randomSlug(), randomSlug(), masterVariant) .key(randomKey()) .build(); ProductFixtures.withProduct(client(), () -> productDraft, productConsumer); } }
@Test public void byKey() { ProductTypeFixtures.withEmptyProductType(client(), productType -> { final String key = randomKey(); final ProductDraft productDraft = ProductDraftBuilder.of(productType, randomSlug(), randomSlug(), ProductVariantDraftBuilder.of().build()).key(key).build(); final Product product = client().executeBlocking(ProductCreateCommand.of(productDraft)); final Product deletedProduct = client().executeBlocking(ProductDeleteCommand.ofKey(key, product.getVersion())); assertThat(client().executeBlocking(ProductByKeyGet.of(key))).isNull(); }); } }
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 message() { ProductTypeFixtures.withEmptyProductType(client(), productType -> { final String key = randomKey(); final Image image = createExternalImage(); final ProductDraft productDraft = ProductDraftBuilder.of(productType, randomSlug(), randomSlug(), ProductVariantDraftBuilder.of().images(image).build()).key(key).build(); final Product product = client().executeBlocking(ProductCreateCommand.of(productDraft)); final Product deletedProduct = client().executeBlocking(ProductDeleteCommand.ofKey(key, product.getVersion())); Query<ProductDeletedMessage> messageQuery = MessageQuery.of() .withPredicates(m -> m.resource().is(deletedProduct)) .withSort(m -> m.createdAt().sort().desc()) .withExpansionPaths(m -> m.resource()) .withLimit(1L) .forMessageType(ProductDeletedMessage.MESSAGE_HINT); assertEventually(() -> { final PagedQueryResult<ProductDeletedMessage> queryResult = client().executeBlocking(messageQuery); assertThat(queryResult.head()).isPresent(); final ProductDeletedMessage message = queryResult.head().get(); assertThat(message.getResource().getId()).isEqualTo(product.getId()); assertThat(message.getRemovedImageUrls()).containsExactly(image.getUrl()); }); }); } }