@Test public void testSetLineItemShippingDetails() { withFilledCartAndMultipleAddresses(client(), cart -> { withCustomer(client(),customer -> { withOrder(client(),customer,cart,order -> { final LineItem firstLineItem = order.getLineItems().get(0); final Long quantity = firstLineItem.getQuantity(); final List<Address> addresses = order.getItemShippingAddresses(); final Address firstAddress = addresses.get(0); final String firstAddressKey = firstAddress.getKey(); final ItemShippingDetailsDraft itemShippingDetailsDraft = ItemShippingDetailsDraftBuilder.of(Arrays.asList(ItemShippingTargetBuilder.of(firstAddressKey, firstLineItem.getQuantity()).build())).build(); final Order updatedOrder = client().executeBlocking(OrderUpdateCommand.of(order, SetLineItemShippingDetails.of(firstLineItem.getId(),itemShippingDetailsDraft))); final LineItem updatedLineItem = updatedOrder.getLineItems().stream().filter(lineItem -> lineItem.getId().equals(firstLineItem.getId())).findAny().get(); assertThat(updatedLineItem.getShippingDetails().getTargets()).hasSize(1); assertThat(updatedLineItem.getShippingDetails().getTargets().get(0).getAddressKey()).isEqualTo(firstAddressKey); assertThat(updatedLineItem.getShippingDetails().getTargets().get(0).getQuantity()).isEqualTo(quantity); return updatedOrder; }); }); }); }