use of nl.knaw.huygens.timbuctoo.server.mediatypes.v2.search.ListFacetValue in project timbuctoo by HuygensING.
the class ListFacetDescriptionTest method filterAddsNoFilterIfTheFacetValuesIsEmpty.
@Test
public void filterAddsNoFilterIfTheFacetValuesIsEmpty() {
String value1 = "value1";
List<FacetValue> facetValues = Lists.newArrayList(new ListFacetValue(FACET_NAME, Lists.newArrayList()));
SearchRequestV2_1 searchRequest = new SearchRequestV2_1();
searchRequest.setFacetValues(facetValues);
GraphTraversal<Vertex, Vertex> traversal = newGraph().withVertex(v -> v.withProperty(PROPERTY, value1).withTimId("1")).withVertex(v -> v.withProperty(PROPERTY, "value2").withTimId("2")).build().traversal().V();
instance.filter(traversal, facetValues);
assertThat(traversal.toList(), containsInAnyOrder(VertexMatcher.likeVertex().withTimId("1"), VertexMatcher.likeVertex().withTimId("2")));
}
use of nl.knaw.huygens.timbuctoo.server.mediatypes.v2.search.ListFacetValue in project timbuctoo by HuygensING.
the class RelatedListFacetDescriptionTest method filterAddsNoFilterWhenTheFacetValueHasNoValues.
@Test
public void filterAddsNoFilterWhenTheFacetValueHasNoValues() {
RelatedListFacetDescription instance = new RelatedListFacetDescription(FACET_NAME, PROPERTY, parser, RELATION);
List<FacetValue> facets = Lists.newArrayList(new ListFacetValue(FACET_NAME, Lists.newArrayList()));
GraphTraversal<Vertex, Vertex> traversal = newGraph().withVertex("v1", v -> v.withTimId("id1").withProperty(PROPERTY, VALUE1)).withVertex("v2", v -> v.withTimId("id2").withProperty(PROPERTY, VALUE2)).withVertex("v3", v -> v.withTimId("id3").withOutgoingRelation(RELATION, "v1")).withVertex("v4", v -> v.withTimId("id4").withOutgoingRelation(RELATION, "v2")).build().traversal().V();
instance.filter(traversal, facets);
assertThat(traversal.toList(), containsInAnyOrder(likeVertex().withTimId("id1"), likeVertex().withTimId("id2"), likeVertex().withTimId("id3"), likeVertex().withTimId("id4")));
}
use of nl.knaw.huygens.timbuctoo.server.mediatypes.v2.search.ListFacetValue in project timbuctoo by HuygensING.
the class RelatedListFacetDescriptionTest method filterAddsAFilterToTheGraphTraversal.
@Test
public void filterAddsAFilterToTheGraphTraversal() {
RelatedListFacetDescription instance = new RelatedListFacetDescription(FACET_NAME, PROPERTY, parser, RELATION);
List<FacetValue> facets = Lists.newArrayList(new ListFacetValue(FACET_NAME, Lists.newArrayList(VALUE1)));
GraphTraversal<Vertex, Vertex> traversal = newGraph().withVertex("v1", v -> v.withTimId("id1").withProperty(PROPERTY, VALUE1)).withVertex("v2", v -> v.withTimId("id2").withProperty(PROPERTY, VALUE2)).withVertex("v3", v -> v.withTimId("id3").withOutgoingRelation(RELATION, "v1")).withVertex("v4", v -> v.withTimId("id4").withOutgoingRelation(RELATION, "v2")).build().traversal().V();
instance.filter(traversal, facets);
List<Vertex> vertices = traversal.toList();
assertThat(vertices, contains(likeVertex().withTimId("id3")));
}
use of nl.knaw.huygens.timbuctoo.server.mediatypes.v2.search.ListFacetValue in project timbuctoo by HuygensING.
the class RelatedMultiValueListFacetDescriptionTest method filterAddsNoFilterWhenTheFacetValueHasNoValues.
@Test
public void filterAddsNoFilterWhenTheFacetValueHasNoValues() {
RelatedMultiValueListFacetDescription instance = new RelatedMultiValueListFacetDescription(FACET_NAME, PROPERTY, RELATION);
List<FacetValue> facets = Lists.newArrayList(new ListFacetValue(FACET_NAME, Lists.newArrayList()));
GraphTraversal<Vertex, Vertex> traversal = newGraph().withVertex("v1", v -> v.withTimId("id1").withProperty(PROPERTY, VALUE1)).withVertex("v2", v -> v.withTimId("id2").withProperty(PROPERTY, VALUE2)).withVertex("v3", v -> v.withTimId("id3").withOutgoingRelation(RELATION, "v1")).withVertex("v4", v -> v.withTimId("id4").withOutgoingRelation(RELATION, "v2")).build().traversal().V();
instance.filter(traversal, facets);
assertThat(traversal.toList(), containsInAnyOrder(likeVertex().withTimId("id1"), likeVertex().withTimId("id2"), likeVertex().withTimId("id3"), likeVertex().withTimId("id4")));
}
use of nl.knaw.huygens.timbuctoo.server.mediatypes.v2.search.ListFacetValue in project timbuctoo by HuygensING.
the class CharterPortaalFondsFacetDescription method filter.
@Override
public void filter(GraphTraversal<Vertex, Vertex> graphTraversal, List<FacetValue> facets) {
Optional<FacetValue> first = facets.stream().filter(facetValue -> Objects.equals(facetValue.getName(), getName())).findFirst();
if (first.isPresent()) {
FacetValue facetValue = first.get();
if (facetValue instanceof ListFacetValue) {
ListFacetValue listFacetValue = (ListFacetValue) facetValue;
List<String> values = listFacetValue.getValues();
if (values.isEmpty()) {
return;
}
List<String> formattedVals = values.stream().map(val -> val.substring(val.indexOf("(") + 1, val.length() - 1)).collect(toList());
graphTraversal.where(__.has(FONDS, P.within(formattedVals)));
} else {
LOG.error("Facet with name '{}' is not a ListFacet", getName());
}
}
}
Aggregations