/** * 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 SetParcelMeasurements withMeasurements(final ParcelMeasurements measurements) { return new SetParcelMeasurements(getParcelId(), measurements); } }
/** * Creates a new object initialized with the given values. * * @param parcelId initial value for the property * @param measurements initial value for the property * @return new object initialized with the given values */ public static SetParcelMeasurements of(final String parcelId, @Nullable final ParcelMeasurements measurements) { return new SetParcelMeasurements(parcelId, measurements); }
@Test public void setParcelMeasurements() 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 Order updatedOrder = client().executeBlocking(OrderUpdateCommand.of(orderWithDelivery, SetParcelMeasurements.of(parcel.getId(), PARCEL_MEASUREMENTS))); final Parcel updatedParcel = updatedOrder.getShippingInfo().getDeliveries().get(0).getParcels().get(0); assertThat(updatedParcel.getMeasurements()).isEqualTo(PARCEL_MEASUREMENTS); //you can observe a message final Query<ParcelMeasurementsUpdatedMessage> messageQuery = MessageQuery.of() .withPredicates(m -> m.resource().is(order)) .forMessageType(ParcelMeasurementsUpdatedMessage.MESSAGE_HINT); assertEventually(() -> { final Optional<ParcelMeasurementsUpdatedMessage> parcelMeasurementsUpdatedMessageOptional = client().executeBlocking(messageQuery).head(); assertThat(parcelMeasurementsUpdatedMessageOptional).isPresent(); final ParcelMeasurementsUpdatedMessage parcelMeasurementsUpdatedMessage = parcelMeasurementsUpdatedMessageOptional.get(); assertThat(parcelMeasurementsUpdatedMessage.getParcelId()).isEqualTo(parcel.getId()); assertThat(parcelMeasurementsUpdatedMessage.getMeasurements()).isEqualTo(PARCEL_MEASUREMENTS); }); }); }