@Test
public void testGetConceptsWithProperties() throws Exception {
loadHierarchyOwlFile();
getOntologyRepository().clearCache();
Iterable<Concept> conceptsWithProperties = getOntologyRepository().getConceptsWithProperties(workspaceId);
Map<String, Concept> conceptsByIri = StreamSupport.stream(conceptsWithProperties.spliterator(), false)
.collect(Collectors.toMap(Concept::getIRI, Function.identity()));
Concept personConcept = conceptsByIri.get("http://visallo.org/testhierarchy#person");
assertNull(conceptsByIri.get("http://visallo.org#root").getParentConceptIRI());
assertEquals("http://visallo.org#root", conceptsByIri.get("http://www.w3.org/2002/07/owl#Thing").getParentConceptIRI());
assertEquals("http://www.w3.org/2002/07/owl#Thing", conceptsByIri.get("http://visallo.org/testhierarchy#contact").getParentConceptIRI());
assertEquals("http://visallo.org/testhierarchy#contact", personConcept.getParentConceptIRI());
List<OntologyProperty> personProperties = new ArrayList<>(personConcept.getProperties());
assertEquals(1, personProperties.size());
assertEquals("http://visallo.org/testhierarchy#name", personProperties.get(0).getIri());
List<String> intents = Arrays.asList(personConcept.getIntents());
assertEquals(2, intents.size());
assertTrue(intents.contains("face"));
assertTrue(intents.contains("person"));
assertEquals("Person", personConcept.getDisplayName());
assertEquals("prop('http://visallo.org/testhierarchy#name') || ''", personConcept.getTitleFormula());
}