@Override public QueryPredicate<PartialProductDataQueryModel> where(final Function<PartialProductDataQueryModel, QueryPredicate<PartialProductDataQueryModel>> embeddedPredicate) { return super.where(embeddedPredicate); }
@Override public QueryPredicate<PartialProductDataQueryModel> where(final QueryPredicate<PartialProductDataQueryModel> embeddedPredicate) { return super.where(embeddedPredicate); } }
@Override public Predicate<PartialProductDataQueryModel> where(final Function<PartialProductDataQueryModel, Predicate<PartialProductDataQueryModel>> embeddedPredicate) { return super.where(embeddedPredicate); }
@Override public Predicate<PartialProductDataQueryModel> where(final Predicate<PartialProductDataQueryModel> embeddedPredicate) { return super.where(embeddedPredicate); } }
public Predicate<M> where(final Function<PartialProductDataQueryModel, Predicate<PartialProductDataQueryModel>> embeddedPredicate) { return where(embeddedPredicate.apply(ProductDataQueryModel.get())); } }
public Predicate<T> where(final Function<PartialProductDataQueryModel, Predicate<PartialProductDataQueryModel>> embeddedPredicate) { return where(embeddedPredicate.apply(ProductDataQueryModel.get())); }
@Test public void combinedEmbeddedQueries() throws Exception { final QueryPredicate<EmbeddedProductDataQueryModel> predicate = DATA_QUERY_MODEL.name().lang(ENGLISH).is("Yes").or(DATA_QUERY_MODEL.name().lang(GERMAN).is("Ja")); final QueryPredicate<Product> resultPredicate = ProductQueryModel.of().masterData().where(m -> m.current().where(predicate).and(m.staged().where(predicate))); assertThat(resultPredicate.toSphereQuery()).isEqualTo("masterData(current(name(en=\"Yes\") or name(de=\"Ja\")) and staged(name(en=\"Yes\") or name(de=\"Ja\")))"); } }
@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)); }