@SuppressWarnings("rawtypes")//at runtime generic type is not determinable @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Reference reference = (Reference) o; if (!getId().equals(reference.getId())) return false; if (!getTypeId().equals(reference.getTypeId())) return false; return true; }
@Override public void serialize(final Reference reference, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("id", reference.getId()); jsonGenerator.writeStringField("typeId", reference.getTypeId()); jsonGenerator.writeObjectField("obj", reference.getObj()); jsonGenerator.writeEndObject(); } }
@SuppressWarnings("rawtypes")//at runtime generic type is not determinable @Override public final boolean equals(Object o) { if (this == o) return true; if (o == null || !(o instanceof Reference)) return false; Reference reference = (Reference) o; if (!getId().equals(reference.getId())) return false; if (!getTypeId().equals(reference.getTypeId())) return false; return true; }
default Reference<T> filled(@Nullable final T obj) { return new ReferenceImpl<>(getTypeId(), getId(), obj); }
public Reference<T> filled(final Optional<T> obj) { return new Reference<>(getTypeId(), getId(), obj); }
public Reference<T> filled(final Optional<T> obj) { return new Reference<>(getTypeId(), getId(), obj); }
public boolean referencesSameResource(final Referenceable<T> counterpart) { final Reference<T> reference = counterpart.toReference(); return reference.getId().equals(getId()) && reference.getTypeId().equals(getTypeId()); }
public static CustomFieldsDraft ofCustomFields(final CustomFields custom) { return CustomFieldsDraft.ofTypeIdAndJson(custom.getType().getTypeId(), custom.getFieldsJsonMap()); }
.filter(hint -> hint.typeString() == null) .filter(hint -> hint.resourceReferenceTypeId() != null) .filter(hint -> hint.resourceReferenceTypeId().equals(genericMessage.getResource().getTypeId())) .map(hint -> hint.clazz()) .filter(clazz -> Message.class.isAssignableFrom(clazz))
.filter(hint -> hint.typeString() == null) .filter(hint -> hint.resourceReferenceTypeId() != null) .filter(hint -> hint.resourceReferenceTypeId().equals(genericMessage.getResource().getTypeId())) .map(hint -> hint.clazz()) .filter(clazz -> Message.class.isAssignableFrom(clazz))
@Test public void createFilledReference() throws Exception { final Reference<TestEntity> reference = newFilledReference(); assertThat(reference.getId()).isEqualTo(id); assertThat(reference.getTypeId()).isEqualTo(typeId); assertThat(reference.getObj()).isEqualTo(new TestEntity("value")); }
@Test public void createEmptyReference() throws Exception { final Reference<TestEntity> reference = newEmptyReference(); assertThat(reference.getId()).isEqualTo(id); assertThat(reference.getTypeId()).isEqualTo(typeId); assertThat(reference.getObj()).isNull(); }
@Test public void categoryCreated() throws Exception { assumeHasAwsCliEnv(); withCategory(client(), category -> { assertEventually(() -> { final ReceiveMessageResult result = sqsClient.receiveMessage(queueUrl); assertThat(result).isNotNull(); final List<Message> sqsMessages = result.getMessages(); assertThat(sqsMessages).hasSize(1); final Message sqsMessage = sqsMessages.get(0); final MessageSubscriptionPayload<Category> messageSubscriptionPayload = SphereJsonUtils.readObject(sqsMessage.getBody(), MessageSubscriptionPayload.class); assertThat(messageSubscriptionPayload).isNotNull(); final Reference resource = messageSubscriptionPayload.getResource(); assertThat(resource).isNotNull(); assertThat(resource.getTypeId()).isEqualTo(Category.referenceTypeId()); assertThat(messageSubscriptionPayload.hasCompleteMessage()).isTrue(); assertThat(messageSubscriptionPayload.as(CategoryCreatedMessage.class)).isNotNull(); sqsClient.deleteMessage(queueUrl, sqsMessage.getReceiptHandle()); }); }); }
/** * Waits for the test subscription message. * (as documented at http://dev.commercetools.com/http-api-projects-subscriptions.html#create-a-subscription) */ protected void waitForSubscriptionTestMessage() { assertEventually(() -> { final ReceiveMessageResult result = sqsClient.receiveMessage(queueUrl); assertThat(result).isNotNull(); final List<Message> sqsMessages = result.getMessages(); for (final Message sqsMessage : sqsMessages) { final ResourceCreatedPayload<Subscription> resourceCreatedPayload = SphereJsonUtils.readObject(sqsMessage.getBody(), ResourceCreatedPayload.class); assertThat(resourceCreatedPayload).isNotNull(); assertThat(resourceCreatedPayload.getResourceUserProvidedIdentifiers()).isNotNull(); assertThat(resourceCreatedPayload.getResourceUserProvidedIdentifiers().getKey()).isNotNull(); final Reference resource = resourceCreatedPayload.getResource(); assertThat(resource).isNotNull(); assertThat(resource.getTypeId()).isEqualTo(Subscription.referenceTypeId()); sqsClient.deleteMessage(queueUrl, sqsMessage.getReceiptHandle()); } }); } }
@Test public void productCreated() throws Exception { assumeHasAwsCliEnv(); withProduct(client(), product -> { assertEventually(() -> { final ReceiveMessageResult result = sqsClient.receiveMessage(queueUrl); assertThat(result).isNotNull(); final List<Message> sqsMessages = result.getMessages(); assertThat(sqsMessages).hasSize(1); final Message sqsMessage = sqsMessages.get(0); sqsClient.deleteMessage(queueUrl, sqsMessage.getReceiptHandle()); final ResourceCreatedPayload<Product> resourceCreatedPayload = SphereJsonUtils.readObject(sqsMessage.getBody(), ResourceCreatedPayload.class); assertThat(resourceCreatedPayload).isNotNull(); assertThat(resourceCreatedPayload.getModifiedAt()).isNotNull(); final Reference resource = resourceCreatedPayload.getResource(); assertThat(resource).isNotNull(); assertThat(resource.getTypeId()).isEqualTo(Product.referenceTypeId()); sqsClient.deleteMessage(queueUrl, sqsMessage.getReceiptHandle()); }); }); }
@Test public void execution() throws Exception { withUpdateableProductDiscount(client(), productDiscount -> { final ProductDiscountQuery discountQuery = ProductDiscountQuery.of() .withPredicates(m -> m.active().is(true).and(m.id().is(productDiscount.getId()))) .withExpansionPaths(m -> m.references()); final ProductDiscount loadedDiscount = client().executeBlocking(discountQuery).head().get(); assertThat(loadedDiscount.getId()).isEqualTo(productDiscount.getId()); assertThat(loadedDiscount.getReferences().size()).isGreaterThanOrEqualTo(1); assertThat(loadedDiscount.getReferences().stream() .filter(ref -> ref.getTypeId().equals(Product.referenceTypeId())) .findFirst() .get() ) .overridingErrorMessage("one product is expanded") .matches(ref -> ref.getObj() != null); return productDiscount; }); } }