static Reference<Product> referenceOfId(final String id) { return Reference.of(referenceTypeId(), id); }
static Reference<Product> reference(final String id) { return Reference.of(referenceTypeId(), id); }
/** * Creates a reference for one item of this class by a known ID. * * <p>An example for categories but this applies for other resources, too:</p> * {@include.example io.sphere.sdk.categories.CategoryTest#referenceOfId()} * * <p>If you already have a resource object, then use {@link #toReference()} instead:</p> * * {@include.example io.sphere.sdk.categories.CategoryTest#toReference()} * * @param id the ID of the resource which should be referenced. * @return reference */ static Reference<Product> referenceOfId(final String id) { return Reference.of(referenceTypeId(), id); }
static Reference<Product> reference(final String id) { return Reference.of(referenceTypeId(), id); }
static Reference<Product> reference(final String id) { return Reference.of(referenceTypeId(), id); }
/** * Creates a reference for one item of this class by a known ID. * * <p>An example for categories but this applies for other resources, too:</p> * {@include.example io.sphere.sdk.categories.CategoryTest#referenceOfId()} * * <p>If you already have a resource object, then use {@link #toReference()} instead:</p> * * {@include.example io.sphere.sdk.categories.CategoryTest#toReference()} * * @param id the ID of the resource which should be referenced. * @return reference */ static Reference<Product> referenceOfId(final String id) { return Reference.of(referenceTypeId(), id); }
static Reference<Product> reference(final Product product) { return Reference.of(referenceTypeId(), product.getId(), product); }
static Reference<Product> reference(final Product product) { return Reference.of(referenceTypeId(), product.getId(), product); }
static Reference<Product> reference(final Product product) { return Reference.of(referenceTypeId(), product.getId(), product); }
@Test public void createAttributeFromReferenceSet(){ final Product product = SphereJsonUtils.readObjectFromResource("product1.json", Product.class); final Reference<Product> expandedReference = Reference.ofResourceTypeIdAndIdAndObj(Product.referenceTypeId(), UUID.randomUUID().toString(), product); final HashSet<Reference<Product>> references = new HashSet<>(); references.add(expandedReference); final Attribute attribute = Attribute.of("attrName", AttributeAccess.ofProductReferenceSet(), references); assertThat(attribute.getValue(AttributeAccess.ofProductReferenceSet()).stream().allMatch(productReference -> productReference.getObj() != null)).isTrue(); }
@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; }); } }
final AttributeDefinition timeAttrDef = AttributeDefinitionBuilder.of(ATTR_NAME_TIME, LocalizedString.ofEnglish(ATTR_NAME_TIME), TimeAttributeType.of()).build(); final AttributeDefinition dateTimeAttrDef = AttributeDefinitionBuilder.of(ATTR_NAME_DATE_TIME, LocalizedString.ofEnglish(ATTR_NAME_DATE_TIME), DateTimeAttributeType.of()).build(); final AttributeDefinition refAttrDef = AttributeDefinitionBuilder.of(ATTR_NAME_REF, LocalizedString.ofEnglish(ATTR_NAME_REF), ReferenceAttributeType.of(Product.referenceTypeId())).build(); final AttributeDefinition booleanSetAttrDef = AttributeDefinitionBuilder.of(ATTR_NAME_BOOLEAN_SET, LocalizedString.ofEnglish(ATTR_NAME_BOOLEAN_SET), SetAttributeType.of(BooleanAttributeType.of())).build(); final AttributeDefinition textSetAttrDef = AttributeDefinitionBuilder.of(ATTR_NAME_TEXT_SET, LocalizedString.ofEnglish(ATTR_NAME_TEXT_SET), SetAttributeType.of(StringAttributeType.of())).build(); final AttributeDefinition timeSetAttrDef = AttributeDefinitionBuilder.of(ATTR_NAME_TIME_SET, LocalizedString.ofEnglish(ATTR_NAME_TIME_SET), SetAttributeType.of(TimeAttributeType.of())).build(); final AttributeDefinition dateTimeSetAttrDef = AttributeDefinitionBuilder.of(ATTR_NAME_DATE_TIME_SET, LocalizedString.ofEnglish(ATTR_NAME_DATE_TIME_SET), SetAttributeType.of(DateTimeAttributeType.of())).build(); final AttributeDefinition refSetAttrDef = AttributeDefinitionBuilder.of(ATTR_NAME_REF_SET, LocalizedString.ofEnglish(ATTR_NAME_REF_SET), SetAttributeType.of(ReferenceAttributeType.of(Product.referenceTypeId()))).build(); final ProductTypeDraft productTypeDraft = ProductTypeDraft.of(randomKey(), PRODUCT_TYPE_NAME, "", asList(booleanAttrDef, textAttrDef, locTextAttrDef, enumAttrDef, locEnumAttrDef, numberAttrDef, moneyAttrDef, dateAttrDef, timeAttrDef, dateTimeAttrDef,