diff --git a/commercetools-models/src/main/java/io/sphere/sdk/carts/CartState.java b/commercetools-models/src/main/java/io/sphere/sdk/carts/CartState.java index 6772be3690..432d6d2442 100644 --- a/commercetools-models/src/main/java/io/sphere/sdk/carts/CartState.java +++ b/commercetools-models/src/main/java/io/sphere/sdk/carts/CartState.java @@ -20,7 +20,10 @@ public enum CartState implements SphereEnumeration { /** The cart was ordered. No further operations on the cart are allowed. */ - ORDERED; + ORDERED, + + FROZEN + ; public static CartState defaultValue() { return CartState.ACTIVE; diff --git a/commercetools-models/src/main/java/io/sphere/sdk/carts/commands/updateactions/FreezeCart.java b/commercetools-models/src/main/java/io/sphere/sdk/carts/commands/updateactions/FreezeCart.java new file mode 100644 index 0000000000..0b76cb0e13 --- /dev/null +++ b/commercetools-models/src/main/java/io/sphere/sdk/carts/commands/updateactions/FreezeCart.java @@ -0,0 +1,14 @@ +package io.sphere.sdk.carts.commands.updateactions; + +import io.sphere.sdk.carts.Cart; +import io.sphere.sdk.commands.UpdateActionImpl; + +public class FreezeCart extends UpdateActionImpl { + private FreezeCart() { + super("freezeCart"); + } + + public static FreezeCart of() { + return new FreezeCart(); + } +} diff --git a/commercetools-models/src/main/java/io/sphere/sdk/carts/commands/updateactions/UnfreezeCart.java b/commercetools-models/src/main/java/io/sphere/sdk/carts/commands/updateactions/UnfreezeCart.java new file mode 100644 index 0000000000..c02c068937 --- /dev/null +++ b/commercetools-models/src/main/java/io/sphere/sdk/carts/commands/updateactions/UnfreezeCart.java @@ -0,0 +1,14 @@ +package io.sphere.sdk.carts.commands.updateactions; + +import io.sphere.sdk.carts.Cart; +import io.sphere.sdk.commands.UpdateActionImpl; + +public class UnfreezeCart extends UpdateActionImpl { + private UnfreezeCart() { + super("unfreezeCart"); + } + + public static UnfreezeCart of() { + return new UnfreezeCart(); + } +} diff --git a/commercetools-models/src/test/java/io/sphere/sdk/carts/commands/CartUpdateCommandIntegrationTest.java b/commercetools-models/src/test/java/io/sphere/sdk/carts/commands/CartUpdateCommandIntegrationTest.java index 349c807b83..9afbfae7d4 100644 --- a/commercetools-models/src/test/java/io/sphere/sdk/carts/commands/CartUpdateCommandIntegrationTest.java +++ b/commercetools-models/src/test/java/io/sphere/sdk/carts/commands/CartUpdateCommandIntegrationTest.java @@ -595,6 +595,23 @@ public void recalculate() throws Exception { }); } + @Test + public void freezeUnfreeze() throws Exception { + withCart(client(), emptyCart -> { + assertThat(emptyCart.getCartState()) + .isEqualTo(CartState.ACTIVE); + final Cart frozenCart = client().executeBlocking(CartUpdateCommand.of(emptyCart, FreezeCart.of())); + + assertThat(frozenCart.getCartState()) + .isEqualTo(CartState.FROZEN); + + final Cart unfrozenCart = client().executeBlocking(CartUpdateCommand.of(frozenCart, UnfreezeCart.of())); + assertThat(frozenCart.getCartState()) + .isEqualTo(CartState.ACTIVE); + return unfrozenCart; + }); + } + @Test public void recalculateAndUpdateProductData() throws Exception { withEmptyCartAndProduct(client(), (emptyCart, product) -> {