p.label().equals(VertexProperty.DEFAULT_LABEL)
&& (p.id().equals(123) || p.id().equals(124))
&& (p.value().equals("a") || p.value().equals("c"))));
// there should be only one with properties on properties
final VertexProperty propertyOnProperty = propertyX.stream().filter(p -> p.iterators().propertyIterator().hasNext()).findAny().get();
assertEquals("a", propertyOnProperty.iterators().propertyIterator("propX1a").next().value());
assertEquals(1, propertyOnProperty.iterators().propertyIterator("propX11").next().value());
assertEquals(123.01d, propertyOnProperty.iterators().propertyIterator("same").next().value());
assertEquals("something", propertyOnProperty.iterators().propertyIterator("extra").next().value());
assertEquals(4, StreamFactory.stream(propertyOnProperty.iterators().propertyIterator()).count());
assertEquals("ha", propertyOnProperty.iterators().hiddenPropertyIterator("propX1ha").next().value());
assertEquals(11, propertyOnProperty.iterators().hiddenPropertyIterator("propX1h1").next().value());
assertEquals(321.01d, propertyOnProperty.iterators().hiddenPropertyIterator("same").next().value());
assertEquals(3, StreamFactory.stream(propertyOnProperty.iterators().hiddenPropertyIterator()).count());
final List<VertexProperty> propertyY = StreamFactory.stream(dv.iterators().hiddenPropertyIterator("y")).collect(Collectors.toList());
assertEquals(2, propertyY.size());
assertTrue(propertyY.stream().allMatch(p ->
p.label().equals(VertexProperty.DEFAULT_LABEL)