/** * Creates a copied update action initialized with the given parameter, the rest of the parameters are copied from the original object. * * @return new object initialized with the copied values from the original object */ public SetParcelItems withItems(final List<DeliveryItem> items) { return new SetParcelItems(getParcelId(), items); } }
/** * Creates a new object initialized with the given values. * * @param parcelId initial value for the property * @param items initial value for the property * @return new object initialized with the given values */ public static SetParcelItems of(final String parcelId, @Nullable final List<DeliveryItem> items) { return new SetParcelItems(parcelId, items); }
@Test public void setParcelItems() throws Exception { withOrder(client(), order -> { final List<ParcelDraft> parcels = asList(ParcelDraft.of(SMALL_PARCEL_MEASUREMENTS, TRACKING_DATA)); final LineItem lineItem = order.getLineItems().get(0); final long availableItemsToShip = 1; final List<DeliveryItem> initialItems = asList(DeliveryItem.of(lineItem, availableItemsToShip)); final Order orderWithDelivery = client().executeBlocking(OrderUpdateCommand.of(order, AddDelivery.of(initialItems, parcels))); final Parcel parcel = orderWithDelivery.getShippingInfo().getDeliveries().get(0).getParcels().get(0); final List<DeliveryItem> parcelItems = asList(DeliveryItem.of(lineItem, availableItemsToShip)); final Order updatedOrder = client().executeBlocking(OrderUpdateCommand.of(orderWithDelivery, SetParcelItems.of(parcel.getId(), parcelItems))); final Parcel updatedParcel = updatedOrder.getShippingInfo().getDeliveries().get(0).getParcels().get(0); assertThat(updatedParcel.getItems()).hasSize(1); assertThat(updatedParcel.getItems()).isEqualTo(parcelItems); //you can observe a message final Query<ParcelItemsUpdatedMessage> messageQuery = MessageQuery.of() .withPredicates(m -> m.resource().is(order)) .forMessageType(ParcelItemsUpdatedMessage.MESSAGE_HINT); assertEventually(() -> { final Optional<ParcelItemsUpdatedMessage> parcelItemsUpdatedMessageOptional = client().executeBlocking(messageQuery).head(); assertThat(parcelItemsUpdatedMessageOptional).isPresent(); final ParcelItemsUpdatedMessage parcelItemsUpdatedMessage = parcelItemsUpdatedMessageOptional.get(); assertThat(parcelItemsUpdatedMessage.getParcelId()).isEqualTo(updatedParcel.getId()); assertThat(parcelItemsUpdatedMessage.getItems()).isEqualTo(parcelItems); assertThat(parcelItemsUpdatedMessage.getDeliveryId()).isEqualTo(updatedOrder.getShippingInfo().getDeliveries().get(0).getId()); }); }); }