@Override public Optional<Reference<TaxCategory>> getTaxCategory() { return product.getTaxCategory(); }
@Override public Optional<Reference<TaxCategory>> getTaxCategory() { return product.getTaxCategory(); }
@Override @Nullable public Reference<TaxCategory> getTaxCategory() { return product.getTaxCategory(); }
@Override @Nullable public Reference<TaxCategory> getTaxCategory() { return product.getTaxCategory(); }
@Override @Nullable public Reference<TaxCategory> getTaxCategory() { return product.getTaxCategory(); }
@Test public void setTaxCategory() throws Exception { TaxCategoryFixtures.withTransientTaxCategory(client(), taxCategory -> withUpdateableProduct(client(), product -> { assertThat(product.getTaxCategory()).isNotEqualTo(taxCategory); final ProductUpdateCommand command = ProductUpdateCommand.of(product, SetTaxCategory.of(taxCategory)); final Product updatedProduct = client().executeBlocking(command); assertThat(updatedProduct.getTaxCategory()).isEqualTo(taxCategory.toReference()); return updatedProduct; }) ); }
type -> { referenceResolver.addResourceByKey("sample-product", product); referenceResolver.addResourceByKey("standard-tax", product.getTaxCategory()); final CartDraft cartDraft = draftFromJsonResource("drafts-tests/cart.json", CartDraft.class, referenceResolver); assertThat(customLineItem.getMoney()).isEqualTo(EURO_20); assertThat(customLineItem.getSlug()).isEqualTo("foo"); assertThat(customLineItem.getTaxCategory()).isEqualTo(product.getTaxCategory()); final Address expectedAddress = Address.of(DE).withLastName("Osgood").withFax("0300000000"); assertThat(cart.getShippingAddress()).isEqualTo(expectedAddress);
public static void withLineItemAndCustomLineItemFilledCart(final BlockingSphereClient client, final UnaryOperator<Cart> op) { withTaxedProduct(client, product -> { final Cart cart = createCartWithShippingAddress(client); assertThat(cart.getLineItems()).hasSize(0); final long quantity = 3; final String productId = product.getId(); final AddLineItem addLineItemAction = AddLineItem.of(productId, 1, quantity); assertThat(cart.getCustomLineItems()).hasSize(0); final MonetaryAmount money = MoneyImpl.of("23.50", EUR); final String slug = "thing-slug"; final LocalizedString name = en("thing"); final CustomLineItemDraft item = CustomLineItemDraft.of(name, slug, money, product.getTaxCategory(), 5L, null); final AddCustomLineItem addCustomLineItemAction = AddCustomLineItem.of(item); final Cart updatedCart = client.executeBlocking(CartUpdateCommand.of(cart, asList(addLineItemAction, addCustomLineItemAction))); assertThat(updatedCart.getLineItems()).hasSize(1); final LineItem lineItem = updatedCart.getLineItems().get(0); assertThat(lineItem.getName()).isEqualTo(product.getMasterData().getStaged().getName()); assertThat(lineItem.getQuantity()).isEqualTo(quantity); final Cart cartToDelete = op.apply(updatedCart); client.executeBlocking(CartDeleteCommand.of(cartToDelete)); }); }
final String productId = product.getId(); referenceResolver.addResourceByKey("a-product", productId); final Reference<TaxCategory> taxCategoryReference = product.getTaxCategory(); referenceResolver.addResourceByKey("standard-tax", taxCategoryReference); final OrderImportDraft orderImportDraft = draftFromJsonResource("drafts-tests/order.json", OrderImportDraft.class, referenceResolver);
@Test public void taxCategory() throws Exception { TaxCategoryFixtures.withTransientTaxCategory(client(), taxCategory -> withProduct(client(), product -> { final Product productWithTaxCategory = client().executeBlocking(ProductUpdateCommand.of(product, SetTaxCategory.of(taxCategory))); assertThat(productWithTaxCategory.getTaxCategory()).isNotNull(); final Query<Product> query = ProductQuery.of(). bySlug(ProductProjectionType.CURRENT, Locale.ENGLISH, englishSlugOf(product.getMasterData().getStaged())). withExpansionPaths(ProductExpansionModel.of().taxCategory()). toQuery(); final PagedQueryResult<Product> queryResult = client().executeBlocking(query); final Reference<TaxCategory> productTypeReference = firstOf(queryResult).getTaxCategory(); assertThat(productTypeReference).is(expanded()); }) ); } }
@Test public void creation() { withUpdateableType(client(), type -> { withCartAndTaxedProduct(client(), (cart, product) -> { final CustomFieldsDraft customFieldsDraft = CustomFieldsDraftBuilder .ofType(type) .addObject(STRING_FIELD_NAME, "a value") .build(); final AddCustomLineItem updateAction = AddCustomLineItem.of(en("custom line item"), "foo", EURO_30, product.getTaxCategory(), 3L).withCustom(customFieldsDraft); final Cart updatedCart = client().executeBlocking(CartUpdateCommand.of(cart, updateAction)); final CustomFields customFields = updatedCart.getCustomLineItems().get(0).getCustom(); assertThat(customFields.getFieldAsString(STRING_FIELD_NAME)).isEqualTo("a value"); return updatedCart; }); return type; }); }
public static void withCustomLineItemFilledCartWithTaxMode(final BlockingSphereClient client, final TaxMode taxMode, final UnaryOperator<Cart> op) { withTaxedProduct(client, product -> { final Cart cart = client.executeBlocking(CartUpdateCommand.of(createCartWithShippingAddress(client), ChangeTaxMode.of(taxMode))); final MonetaryAmount money = MoneyImpl.of("23.50", EUR); final String slug = "thing-slug"; final LocalizedString name = en("thing"); final CustomLineItemDraft item = CustomLineItemDraft.of(name, slug, money, product.getTaxCategory(), 5L, null); final AddCustomLineItem addCustomLineItemAction = AddCustomLineItem.of(item); final Cart updatedCart = client.executeBlocking(CartUpdateCommand.of(cart, asList(addCustomLineItemAction))); final Cart cartToDelete = op.apply(updatedCart); client.executeBlocking(CartDeleteCommand.of(cartToDelete)); }); }
@Test public void createProductByJsonDraft() throws Exception { final JsonNodeReferenceResolver referenceResolver = new JsonNodeReferenceResolver(); withCategory(client(), category -> { withProductType(client(), randomKey(), productType -> { withTaxCategory(client(), taxCategory -> { withStateByBuilder(client(), stateBuilder -> stateBuilder.initial(true).type(StateType.PRODUCT_STATE), state -> { referenceResolver.addResourceByKey("t-shirt-category", category); referenceResolver.addResourceByKey("t-shirt-product-type", productType); referenceResolver.addResourceByKey("standard-tax", taxCategory); referenceResolver.addResourceByKey("initial-product-state", state); final ProductDraft productDraft = draftFromJsonResource("drafts-tests/product.json", ProductDraft.class, referenceResolver); final Product product = client().executeBlocking(ProductCreateCommand.of(productDraft)); assertThat(product.getProductType()).isEqualTo(productType.toReference()); assertThat(product.getTaxCategory()).isEqualTo(taxCategory.toReference()); assertThat(product.getState()).isEqualTo(state.toReference()); final ProductData productData = product.getMasterData().getStaged(); assertThat(productData.getName()).isEqualTo(LocalizedString.ofEnglish("red shirt")); assertThat(productData.getCategories()).extracting("id").contains(category.getId()); client().executeBlocking(ProductDeleteCommand.of(product)); }); }); }); }); }
@Test public void createProductWithExternalImage() throws Exception { withStateByBuilder(client(), stateBuilder -> stateBuilder.initial(true).type(PRODUCT_STATE), initialProductState -> { final ProductType productType = ProductTypeFixtures.defaultProductType(client()); final Image image = Image.ofWidthAndHeight("http://www.commercetools.com/assets/img/ct_logo_farbe.gif", 460, 102, "commercetools logo"); final ProductVariantDraft masterVariant = ProductVariantDraftBuilder.of() .images(image) .build(); final TaxCategory taxCategory = defaultTaxCategory(client()); final SearchKeywords searchKeywords = SearchKeywords.of(Locale.ENGLISH, asList(SearchKeyword.of("foo bar baz", CustomSuggestTokenizer.of(asList("foo, baz"))))); final ProductDraft productDraft = ProductDraftBuilder .of(productType, en("product with external image"), randomSlug(), masterVariant) .taxCategory(taxCategory) .searchKeywords(searchKeywords) .state(initialProductState) .build(); final Product product = client().executeBlocking(ProductCreateCommand.of(productDraft)); final Image loadedImage = product.getMasterData().getStaged().getMasterVariant().getImages().get(0); assertThat(loadedImage).isEqualTo(image); assertThat(product.getTaxCategory()).isEqualTo(taxCategory.toReference()); assertThat(product.getMasterData().getStaged().getSearchKeywords()).isEqualTo(searchKeywords); assertThat(product.getState()).isEqualTo(initialProductState.toReference()); //clean up test client().executeBlocking(ProductDeleteCommand.of(product)); }); }
public static void withCartHavingDiscountedCustomLineItem(final BlockingSphereClient client, final RelativeCartDiscountValue relativeCartDiscountValue, final UnaryOperator<Cart> op) { withTaxedProduct(client, product -> { withCustomer(client, (customer) -> { CartDiscountFixtures.withCartDiscount(client, builder -> builder .cartPredicate(CartPredicate.of("customer.id=\"" + customer.getId() + "\"")) .value(relativeCartDiscountValue) .target(CustomLineItemsTarget.of("slug =\"thing-discounted-slug\"")), cartDiscount -> { withCart(client, (cart) -> { assertThat(cart.getCustomLineItems()).hasSize(0); final MonetaryAmount money = MoneyImpl.of("23.50", EUR); final String slug = "thing-discounted-slug"; final LocalizedString name = en("thing"); final CustomLineItemDraft item = CustomLineItemDraft.of(name, slug, money, product.getTaxCategory(), 5L, null); final AddCustomLineItem addCustomLineItemAction = AddCustomLineItem.of(item); final List<UpdateAction<Cart>> updateActions = asList(addCustomLineItemAction, SetCustomerId.of(customer.getId()), Recalculate.of().withUpdateProductData(true)); final Cart updatedCart = client.executeBlocking(CartUpdateCommand.of(cart, updateActions)); final Cart cartToDelete = op.apply(updatedCart); return cartToDelete; }); }); }); }); }
final List<LineItemDraft> lineItems = asList(lineItemDraft1, lineItemDraftOfVariantIdentifier, lineItemDraftOfSku); final List<CustomLineItemDraft> customLineItems = singletonList(CustomLineItemDraft.of(randomSlug(), "foo-bar", EURO_5, product1.getTaxCategory(), 1L, null));