@Test public void throwsExceptionOnAccessingWrongExpression() throws Exception { final FilteredFacetExpression<Object> facet = FilteredFacetExpression.of("some wrong facet"); assertThat(facet.expression()).isEqualTo("some wrong facet"); assertThatThrownBy(() -> facet.attributePath()).isInstanceOf(IllegalArgumentException.class); assertThatThrownBy(() -> facet.value()).isInstanceOf(IllegalArgumentException.class); assertThatThrownBy(() -> facet.alias()).isInstanceOf(IllegalArgumentException.class); assertThatThrownBy(() -> facet.resultPath()).isInstanceOf(IllegalArgumentException.class); }
@Test public void buildsFilteredFacetExpressionWithAlias() throws Exception { final FilteredFacetExpression<Object> facet = FilteredFacetExpression.of(ATTRIBUTE_PATH + TERM_VALUE + AS_ALIAS); assertThat(facet.expression()).isEqualTo(ATTRIBUTE_PATH + TERM_VALUE + AS_ALIAS); assertThat(facet.attributePath()).isEqualTo(ATTRIBUTE_PATH); assertThat(facet.value()).isEqualTo(TERM_VALUE); assertThat(facet.alias()).isEqualTo(ALIAS); assertThat(facet.resultPath()).isEqualTo(ALIAS); }
@Test public void buildsFilteredFacetExpression() throws Exception { final FilteredFacetExpression<Object> facet = FilteredFacetExpression.of(ATTRIBUTE_PATH + TERM_VALUE); assertThat(facet.expression()).isEqualTo(ATTRIBUTE_PATH + TERM_VALUE); assertThat(facet.attributePath()).isEqualTo(ATTRIBUTE_PATH); assertThat(facet.value()).isEqualTo(TERM_VALUE); assertThat(facet.alias()).isNull(); assertThat(facet.resultPath()).isEqualTo(ATTRIBUTE_PATH); }
@Test public void buildsFilteredFacetExpressionWithAlias() throws Exception { final FilteredFacetExpression<Object> facet = TermFacetSearchModel.of(ATTRIBUTE_PATH, ofString()).withAlias(ALIAS).onlyTerm(TERMS); assertThat(facet.expression()).isEqualTo(ATTRIBUTE_PATH + TERM_VALUE + AS_ALIAS); assertThat(facet.attributePath()).isEqualTo(ATTRIBUTE_PATH); assertThat(facet.value()).isEqualTo(TERM_VALUE); assertThat(facet.alias()).isEqualTo(ALIAS); assertThat(facet.resultPath()).isEqualTo(ALIAS); }
@Test public void buildsFilteredFacetExpression() throws Exception { final FilteredFacetExpression<Object> facet = TermFacetSearchModel.of(ATTRIBUTE_PATH, ofString()).onlyTerm(TERMS); assertThat(facet.expression()).isEqualTo(ATTRIBUTE_PATH + TERM_VALUE); assertThat(facet.attributePath()).isEqualTo(ATTRIBUTE_PATH); assertThat(facet.value()).isEqualTo(TERM_VALUE); assertThat(facet.alias()).isNull(); assertThat(facet.resultPath()).isEqualTo(ATTRIBUTE_PATH); }
@Test public void usesAlias() throws Exception { final RangeTermFacetSearchModel<ProductProjection, BigDecimal> path = FACET_ATTR.ofNumber("size"); assertThat(path.withAlias("my-facet").allTerms().expression()).isEqualTo("variants.attributes.size as my-facet"); assertThat(path.withAlias("my-facet").onlyTerm(valueOf(38)).expression()).isEqualTo("variants.attributes.size:38 as my-facet"); assertThat(path.withAlias("my-facet").onlyLessThan(valueOf(38)).expression()).isEqualTo("variants.attributes.size:range(* to 38) as my-facet"); }