static ProductProjectionByIdGet ofStaged(final String id) { return of(id, ProductProjectionType.STAGED); }
static ProductProjectionByIdGet ofStaged(final String id) { return of(id, ProductProjectionType.STAGED); }
static ProductProjectionByIdGet ofStaged(final String id) { return of(id, ProductProjectionType.STAGED); }
static ProductProjectionByIdGet ofCurrent(final String id) { return of(id, ProductProjectionType.CURRENT); }
static ProductProjectionByIdGet ofCurrent(final String id) { return of(id, ProductProjectionType.CURRENT); }
static ProductProjectionByIdGet ofCurrent(final String id) { return of(id, ProductProjectionType.CURRENT); }
static ProductProjectionByIdGet ofCurrent(final ProductIdentifiable product) { return of(product.getId(), ProductProjectionType.CURRENT); }
static ProductProjectionByIdGet ofStaged(final ProductIdentifiable product) { return of(product.getId(), ProductProjectionType.STAGED); }
static ProductProjectionByIdGet ofStaged(final ProductIdentifiable product) { return of(product.getId(), ProductProjectionType.STAGED); }
static ProductProjectionByIdGet of(final ProductIdentifiable product, final ProductProjectionType projectionType) { return of(product.getId(), projectionType); }
static ProductProjectionByIdGet ofCurrent(final ProductIdentifiable product) { return of(product.getId(), ProductProjectionType.CURRENT); }
static ProductProjectionByIdGet ofStaged(final ProductIdentifiable product) { return of(product.getId(), ProductProjectionType.STAGED); }
static ProductProjectionByIdGet of(final ProductIdentifiable product, final ProductProjectionType projectionType) { return of(product.getId(), projectionType); }
static ProductProjectionByIdGet of(final ProductIdentifiable product, final ProductProjectionType projectionType) { return of(product.getId(), projectionType); }
static ProductProjectionByIdGet ofCurrent(final ProductIdentifiable product) { return of(product.getId(), ProductProjectionType.CURRENT); }
private static void withUpdateableProductProjectionOfMultipleVariants(final BlockingSphereClient client, final Function<ProductProjection, Versioned<Product>> f) { withUpdateableProductOfMultipleVariants(client, product -> { //given final ProductProjection productProjection = client().executeBlocking(ProductProjectionByIdGet.of(product, STAGED)); return f.apply(productProjection); }); }
@Test public void plusExpansionPathDemo() throws Exception { final ProductProjectionByIdGet fetch = ProductProjectionByIdGet.of("id", ProductProjectionType.CURRENT); assertThat(fetch.expansionPaths()).isEmpty(); final ProductProjectionByIdGet fetch2 = fetch.plusExpansionPaths(ProductProjectionExpansionModel.of().categories()); assertThat(fetch.expansionPaths()).overridingErrorMessage("old object is unchanged").isEmpty(); assertThat(fetch2.expansionPaths()).isEqualTo(asList(ExpansionPath.of("categories[*]"))); assertThat(fetch2).isNotSameAs(fetch); }
@Test public void withExpansionPathDslDemo() throws Exception { final ProductProjectionByIdGet fetch = ProductProjectionByIdGet.of("id", ProductProjectionType.CURRENT) .plusExpansionPaths(ProductProjectionExpansionModel.of().categories()); assertThat(fetch.expansionPaths()) .isEqualTo(asList(ExpansionPath.of("categories[*]"))); final ProductProjectionByIdGet fetch2 = fetch.withExpansionPaths(m -> m.productType()); assertThat(fetch.expansionPaths()).overridingErrorMessage("old object is unchanged") .isEqualTo(asList(ExpansionPath.of("categories[*]"))); assertThat(fetch2.expansionPaths()).isEqualTo(asList(ExpansionPath.of("productType"))); assertThat(fetch2).isNotSameAs(fetch); }
@Test public void withExpansionPathDemo() throws Exception { final ProductProjectionByIdGet fetch = ProductProjectionByIdGet.of("id", ProductProjectionType.CURRENT) .withExpansionPaths(ProductProjectionExpansionModel.of().categories()); assertThat(fetch.expansionPaths()) .isEqualTo(asList(ExpansionPath.of("categories[*]"))); final ProductProjectionByIdGet fetch2 = fetch.withExpansionPaths(ProductProjectionExpansionModel.of().productType()); assertThat(fetch.expansionPaths()).overridingErrorMessage("old object is unchanged") .isEqualTo(asList(ExpansionPath.of("categories[*]"))); assertThat(fetch2.expansionPaths()).isEqualTo(asList(ExpansionPath.of("productType"))); assertThat(fetch2).isNotSameAs(fetch); }
@Test public void execution() throws Exception { withProduct(client(), "getProductProjectionById", product -> { final ProductProjectionType projectionType = STAGED; final String productId = product.getId(); final ProductProjectionByIdGet sphereRequest = ProductProjectionByIdGet.of(productId, projectionType); final ProductProjection productProjection = client().executeBlocking(sphereRequest); final String fetchedProjectionId = productProjection.getId(); assertThat(fetchedProjectionId).isEqualTo(productId); assertThat(productProjection.getCategories()).isEqualTo(product.getMasterData().get(projectionType).getCategories()); }); } }