public ProductDataQueryModel<M> forProjection(final ProductProjectionType type) { return type == CURRENT ? current() : staged(); }
public ProductDataQueryModel<M> forProjection(final ProductProjectionType type) { return type == CURRENT ? current() : staged(); }
public ProductDataQueryModel<M> forProjection(final ProductProjectionType type) { return type == CURRENT ? current() : staged(); }
@Test public void variants() throws Exception { assertThat(ProductQueryModel.of().masterData().current().variants().sku().is("bar").toSphereQuery()) .isEqualTo("masterData(current(variants(sku=\"bar\")))"); }
@Test public void pure() throws Exception { final QueryPredicate<Product> purePredicate = ProductQueryModel.of().masterData().current().name().lang(ENGLISH).is("Yes"); assertThat(purePredicate.toSphereQuery()).isEqualTo("masterData(current(name(en=\"Yes\")))"); }
@Test public void allVariantsInProduct() throws Exception { assertThat(ProductQueryModel.of().masterData().current().allVariants().where(m -> m.sku().is("bar"))) .isEqualTo(ProductQueryModel.of().masterData().current().where(m -> m.masterVariant().sku().is("bar").or(m.variants().sku().is("bar")))) .isEqualTo(QueryPredicate.<Product>of(embeddedProductPredicate)); }
protected SphereRequest<PagedQueryResult<Product>> queryObjectForName(final String name) { return ProductQuery.of().withPredicates(m -> m.masterData().current().name().lang(ENGLISH).is(name)); }
protected SphereRequest<PagedQueryResult<Product>> queryObjectForNames(final List<String> names) { return ProductQuery.of().withPredicates(m -> m.masterData().current().name().lang(ENGLISH).isIn(names)); }
@Override public Query<Product> get() { final QueryPredicate<Product> predicate = ProductQueryModel.of(). masterData().current().name().lang(Locale.ENGLISH).is("simple cotton t-shirt"); return ProductQuery.of().withPredicates(predicate); } }
@Test public void queryByTiersWithMinimumQuantity() { withProduct(client(), product -> { final ProductQuery productQuery = ProductQuery.of() .withPredicates(m -> m.masterData().current().variants().prices().tiers().minimumQuantity().isGreaterThan(5)) .plusPredicates(m -> m.is(product)); final List<Product> results = client().executeBlocking(productQuery).getResults(); assertThat(results).hasSize(0); }); }
@Test public void queryByTiersWithValue() { withProduct(client(), product -> { final ProductQuery productQuery = ProductQuery.of() .withPredicates(m -> m.masterData().current().variants().prices().tiers().value().currencyCode().is("EUR")) .plusPredicates(m -> m.is(product)); final List<Product> results = client().executeBlocking(productQuery).getResults(); assertThat(results).hasSize(0); }); }