public static SetSku of(final int variantId, final String sku) { return of(variantId, Optional.of(sku)); } }
public static SetSku of(final long variantId, final String sku) { return of(variantId, Optional.of(sku)); } }
public static SetSku of(final Integer variantId, @Nullable final String sku) { return of(variantId, sku, null); }
public static SetSku of(final Integer variantId, @Nullable final String sku) { return of(variantId, sku, null); }
public void setSkuWithStaged(final Boolean staged) { final String oldSku = randomKey(); withProductOfSku(oldSku, (Product product) -> { assertThat(product.getMasterData().getStaged().getMasterVariant().getSku()).isEqualTo(oldSku); assertThat(product.getMasterData().getCurrent().getMasterVariant().getSku()).isEqualTo(oldSku); assertThat(product.getMasterData().hasStagedChanges()).isFalse(); final String newSku = randomKey(); final ProductUpdateCommand cmd = ProductUpdateCommand.of(product, SetSku.of(MASTER_VARIANT_ID, newSku, staged)); final Product updatedProduct = client().executeBlocking(cmd); assertThat(updatedProduct.getMasterData().hasStagedChanges()).isEqualTo(staged); return updatedProduct; }); }
@Test public void setSku() throws Exception { final String oldSku = randomKey(); withProductOfSku(oldSku, (Product product) -> { assertThat(product.getMasterData().getStaged().getMasterVariant().getSku()).isEqualTo(oldSku); assertThat(product.getMasterData().getCurrent().getMasterVariant().getSku()).isEqualTo(oldSku); assertThat(product.getMasterData().hasStagedChanges()).isFalse(); final String newSku = randomKey(); final ProductUpdateCommand cmd = ProductUpdateCommand.of(product, SetSku.of(MASTER_VARIANT_ID, newSku)); final Product updatedProduct = client().executeBlocking(cmd); assertThat(updatedProduct.getMasterData().getStaged().getMasterVariant().getSku()) .as("update action updates SKU in staged") .isEqualTo(newSku); assertThat(updatedProduct.getMasterData().getCurrent().getMasterVariant().getSku()) .as("update action updates NOT directly in current") .isEqualTo(oldSku) .isNotEqualTo(newSku); assertThat(updatedProduct.getMasterData().hasStagedChanges()).isTrue(); return updatedProduct; }); }
@Test public void withLineItemBySku() { withUpdateableProduct(client(), product -> { final String sku = randomKey(); final Product productWithSku = client().executeBlocking(ProductUpdateCommand.of(product, Arrays.asList(SetSku.of(1, sku), Publish.of()))); final LineItemDraftDsl lineItemBySku = LineItemDraftBuilder.ofSku(sku, 1L).build(); final ShoppingListDraft shoppingListDraft = ShoppingListFixtures.newShoppingListDraftBuilder() .key(DEMO_SHOPPING_LIST_KEY) .plusLineItems(lineItemBySku) .build(); final ShoppingList shoppingList = client().executeBlocking(ShoppingListCreateCommand.of(shoppingListDraft).withExpansionPaths(m -> m.lineItems())); assertThat(shoppingList).isNotNull(); assertThat(shoppingList.getLineItems()) .hasSize(1); return productWithSku; }); } }
@Test public void queryBySku() throws Exception { withProduct(client(), product -> { final String sku = "sku-" + randomString(); final Product productWithSku = client().executeBlocking(ProductUpdateCommand.of(product, SetSku.of(MASTER_VARIANT_ID, sku))); final QueryPredicate<ProductProjection> predicate = model().masterVariant().sku().is(sku); checkOneResult(productWithSku, predicate); }); }