public static AddDiscountCode of(final String code) { return new AddDiscountCode(code); }
public static AddDiscountCode of(final DiscountCode code) { return of(code.getCode()); }
public static AddDiscountCode of(final DiscountCode code) { return of(code.getCode()); }
public static AddDiscountCode of(final DiscountCode code) { return of(code.getCode()); }
public static AddDiscountCode of(final String code) { return new AddDiscountCode(code); }
@Test public void order() { withDiscountCodeOfPredicate("totalPrice > \"800.00 EUR\"", (DiscountCode discountCode) -> withFilledCart(client(), cart -> { final Cart cartWithDiscountCode = client().executeBlocking(CartUpdateCommand.of(cart, AddDiscountCode.of(discountCode))); assertThat(cartWithDiscountCode.getTotalPrice()).isEqualTo(MoneyImpl.of("37.02", EUR)); assertThat(cartWithDiscountCode.getDiscountCodes()).hasSize(1); assertThat(cartWithDiscountCode.getDiscountCodes().get(0).getState()) .as("the discount (code) does not match the cart") .isEqualTo(DOES_NOT_MATCH_CART); final Throwable throwable = catchThrowable(() -> client().executeBlocking(OrderFromCartCreateCommand.of(cartWithDiscountCode))); assertThat(throwable).isInstanceOf(ErrorResponseException.class); final ErrorResponseException e = (ErrorResponseException) throwable; assertThat(e.hasErrorCode(DiscountCodeNonApplicableError.CODE)).isTrue(); })); }
public static AddDiscountCode of(final String code) { return new AddDiscountCode(code); }
@Test public void removeDiscountCode() throws Exception { withCartAndDiscountCode(client(), (cart, discountCode) -> { //addDiscountCode final Cart cartWithCode = client().executeBlocking(CartUpdateCommand.of(cart, AddDiscountCode.of(discountCode))); final DiscountCodeInfo discountCodeInfo = cartWithCode.getDiscountCodes().get(0); assertThat(discountCodeInfo.getDiscountCode()).isEqualTo(discountCode.toReference()); //removeDiscountCode final Cart updatedCart = client().executeBlocking(CartUpdateCommand.of(cartWithCode, RemoveDiscountCode.of(discountCode))); assertThat(updatedCart.getDiscountCodes()).isEmpty(); return updatedCart; }); }
@Test public void expandDiscountCodeReference() throws Exception { withCartAndDiscountCode(client(), (cart, discountCode) -> { //addDiscountCode final Cart cartWithCode = client().executeBlocking(CartUpdateCommand.of(cart, AddDiscountCode.of(discountCode))); final CartQuery query = CartQuery.of() .withPredicates(m -> m.id().is(cart.getId())) .withExpansionPaths(m -> m.discountCodes().discountCode()); final Cart loadedCart = client().executeBlocking(query).head().get(); final DiscountCodeInfo discountCodeInfo = loadedCart.getDiscountCodes().get(0); assertThat(discountCodeInfo.getDiscountCode()).isEqualTo(discountCode.toReference()); assertThat(discountCodeInfo.getDiscountCode().getObj()).isNotNull(); //query cart by discountCodes final CartQuery cartQuery = CartQuery.of() .withPredicates(m -> m.discountCodes().discountCode().is(discountCode)) .plusPredicates(m -> m.is(cart)); assertThat(client().executeBlocking(cartQuery).head()).contains(loadedCart); //clean up final Cart updatedCart = client().executeBlocking(CartUpdateCommand.of(cartWithCode, RemoveDiscountCode.of(discountCode))); assertThat(updatedCart.getDiscountCodes()).isEmpty(); return updatedCart; }); }