use of nl.knaw.huygens.timbuctoo.server.TinkerPopGraphManager in project timbuctoo by HuygensING.
the class TinkerPopOperationsTest method retractPropertyWillBeANoopIfTheEntityDoesNotYetExist.
@Test
public void retractPropertyWillBeANoopIfTheEntityDoesNotYetExist() {
TinkerPopGraphManager graphManager = newGraph().wrap();
TinkerPopOperations instance = forGraphWrapper(graphManager);
Vre vre = instance.ensureVreExists("vre");
instance.retractProperty(vre, "http://example.org/1", new RdfProperty("http://example.org/propName", "somethingCompletelyDifferent", "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"));
Long entitiesWithPropName = graphManager.getGraph().traversal().V().has(RDF_URI_PROP, "http://example.org/1").count().next();
assertThat(entitiesWithPropName, is(0L));
}
use of nl.knaw.huygens.timbuctoo.server.TinkerPopGraphManager in project timbuctoo by HuygensING.
the class TinkerPopOperationsTest method getEntityOnlyReturnsAcceptedRelations.
@Test
public void getEntityOnlyReturnsAcceptedRelations() throws Exception {
Vres vres = createConfiguration();
Collection collection = vres.getCollection("testthings").get();
UUID id = UUID.randomUUID();
UUID relatedId = UUID.randomUUID();
TinkerPopGraphManager graphManager = newGraph().withVertex("source", v -> v.withOutgoingRelation("isRelatedTo", "relatedThing", rel -> rel.withIsLatest(true).withAccepted("testrelation", true)).withOutgoingRelation("hasOtherRelation", "relatedThing", rel -> rel.withIsLatest(true).withAccepted("testrelation", false)).withVre("test").withVre("").withType("thing").isLatest(true).withTimId(id.toString())).withVertex("relatedThing", v -> v.withVre("test").withVre("").withType("thing").withTimId(relatedId.toString())).wrap();
TinkerPopOperations instance = forGraphWrapperAndMappings(graphManager, vres);
ReadEntity entity = instance.getEntity(id, null, collection, (readEntity, vertex) -> {
}, (graphTraversalSource, vre, vertex, relationRef) -> {
});
assertThat(entity.getRelations(), hasSize(1));
assertThat(entity.getRelations(), contains(hasProperty("relationType", equalTo("isRelatedTo"))));
}
use of nl.knaw.huygens.timbuctoo.server.TinkerPopGraphManager in project timbuctoo by HuygensING.
the class TinkerPopOperationsTest method getEntitiesWithUnknownTypeDoesNotReturnEntitiesWithACollection.
@Test
public void getEntitiesWithUnknownTypeDoesNotReturnEntitiesWithACollection() {
TinkerPopGraphManager wrap = newGraph().wrap();
TinkerPopOperations instance = forGraphWrapper(wrap);
final Database legacyRdfDatabase = new Database(wrap);
Vre vre = instance.ensureVreExists("vre");
instance.addCollectionToVre(vre, CreateCollection.defaultCollection("vre"));
Vre admin = instance.ensureVreExists("Admin");
instance.addCollectionToVre(admin, CreateCollection.defaultCollection("Admin"));
vre = instance.loadVres().getVre("vre");
instance.assertEntity(vre, "http://example.org/entity1");
instance.assertEntity(vre, "http://example.org/entity2");
nl.knaw.huygens.timbuctoo.rdf.Collection collection = legacyRdfDatabase.findOrCreateCollection("vre", NodeFactory.createURI("http://example.org/myCollection").getURI(), NodeFactory.createURI("http://example.org/myCollection").getLocalName());
Optional<Entity> entity = legacyRdfDatabase.findEntity("vre", NodeFactory.createURI("http://example.org/entity1"));
entity.get().addToCollection(collection);
List<String> entitiesWithUnknownType = instance.getEntitiesWithUnknownType(vre);
assertThat(entitiesWithUnknownType, containsInAnyOrder("http://example.org/entity2"));
}
use of nl.knaw.huygens.timbuctoo.server.TinkerPopGraphManager in project timbuctoo by HuygensING.
the class TinkerPopOperationsTest method getCollectionReturnsTheKnowsDisplayNameForEachItem.
@Test
public void getCollectionReturnsTheKnowsDisplayNameForEachItem() {
Vres vres = createConfiguration();
Collection collection = vres.getCollection("testthings").get();
UUID id1 = UUID.randomUUID();
UUID id2 = UUID.randomUUID();
TinkerPopGraphManager graphManager = newGraph().withVertex(v -> v.withLabel("testthing").withVre("test").withType("thing").isLatest(true).withTimId(id1.toString()).withProperty("testthing_displayName", // configured in JsonCrudServiceBuilder
"displayName1")).withVertex(v -> v.withLabel("testthing").withVre("test").withType("thing").isLatest(true).withTimId(id2.toString()).withProperty("testthing_displayName", // configured in JsonCrudServiceBuilder
"displayName2")).wrap();
TinkerPopOperations instance = forGraphWrapperAndMappings(graphManager, vres);
DataStream<ReadEntity> entities = instance.getCollection(collection, 0, 2, true, (readEntity, vertex) -> {
}, (graphTraversalSource, vre, vertex, relationRef) -> {
});
List<String> displayNames = entities.map(ReadEntity::getDisplayName);
assertThat(displayNames, containsInAnyOrder("displayName1", "displayName2"));
}
use of nl.knaw.huygens.timbuctoo.server.TinkerPopGraphManager in project timbuctoo by HuygensING.
the class TinkerPopOperationsTest method acceptRelationCreatesANewRelationWhenItDoesNotExist.
@Test
public void acceptRelationCreatesANewRelationWhenItDoesNotExist() throws Exception {
Vres vres = createConfiguration();
Collection collection = vres.getCollection("testrelations").get();
UUID typeId = UUID.randomUUID();
UUID sourceId = UUID.randomUUID();
UUID targetId = UUID.randomUUID();
TinkerPopGraphManager graphManager = newGraph().withVertex(v -> v.withTimId(typeId.toString()).withType("relationtype").withProperty("relationtype_regularName", "regularName").withProperty("rev", 1).withProperty("isLatest", true)).withVertex(v -> v.withTimId(sourceId.toString()).withProperty("rev", 1).withVre("test").withType("thing").withProperty("isLatest", true)).withVertex(v -> v.withTimId(targetId.toString()).withProperty("rev", 1).withVre("test").withType("thing").withProperty("isLatest", true)).wrap();
TinkerPopOperations instance = forGraphWrapperAndMappings(graphManager, vres);
CreateRelation createRelation = new CreateRelation(sourceId, typeId, targetId);
createRelation.setCreated(new Change(Instant.now().toEpochMilli(), "userId", null));
UUID relId = instance.acceptRelation(collection, createRelation);
assertThat(graphManager.getGraph().traversal().E().has("tim_id", relId.toString()).next(), is(likeEdge().withSourceWithId(sourceId).withTargetWithId(targetId).withTypeId(typeId)));
}
Aggregations