public static void withUpdateableShippingMethodForGermany(final BlockingSphereClient client, final UnaryOperator<ShippingMethod> consumer) { final Optional<Zone> zoneOptional = client.executeBlocking(ZoneQuery.of().byCountry(DE)).head(); final Zone zone; if (zoneOptional.isPresent()) { zone = zoneOptional.get(); } else { zone = client.executeBlocking(ZoneCreateCommand.of(ZoneDraft.of("de", singleton(Location.of(DE))))); } withUpdateableShippingMethod(client, shippingMethodWithOutZone -> { final ShippingMethod updated = client.executeBlocking(ShippingMethodUpdateCommand.of(shippingMethodWithOutZone, asList(AddZone.of(zone), AddShippingRate.of(ShippingRate.of(EURO_1), zone)))); return consumer.apply(updated); }); }
public static void withUpdateableDynamicShippingMethodForGermany(final BlockingSphereClient client, final CartPredicate cartPredicate, final UnaryOperator<ShippingMethod> consumer) { final Optional<Zone> zoneOptional = client.executeBlocking(ZoneQuery.of().byCountry(DE)).head(); final Zone zone; if (zoneOptional.isPresent()) { zone = zoneOptional.get(); } else { zone = client.executeBlocking(ZoneCreateCommand.of(ZoneDraft.of("de", singleton(Location.of(DE))))); } withUpdateableDynamicShippingMethod(client, cartPredicate, shippingMethodWithOutZone -> { final ShippingMethod updated = client.executeBlocking(ShippingMethodUpdateCommand.of(shippingMethodWithOutZone, asList(AddZone.of(zone), AddShippingRate.of(ShippingRate.of(EURO_1), zone)))); return consumer.apply(updated); }); }
final ShippingMethod shippingMethodWithZone = client().executeBlocking(ShippingMethodUpdateCommand.of(shippingMethod, AddZone.of(zone))); final ZoneRate zoneRate = shippingMethodWithZone.getZoneRates().stream() .filter(rate -> rate.getZone().hasSameIdAs(zone))