@Test public void testPutLdpRsWithoutBaseUrl() throws Exception { final TriplestoreResourceService svc = new TriplestoreResourceService( connect(wrap(rdf.createDataset().asJenaDatasetGraph()))); svc.initialize(); final Dataset dataset = rdf.createDataset(); dataset.add(Trellis.PreferUserManaged, resource, DC.title, rdf.createLiteral("title")); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant later = meanwhile(); assertDoesNotThrow(() -> allOf( svc.create(builder(resource).interactionModel(LDP.RDFSource).container(root).build(), dataset) .toCompletableFuture(), svc.touch(root).toCompletableFuture()).join(), "Unsuccessful create operation!"); allOf( svc.get(resource).thenAccept(checkResource(later, LDP.RDFSource, 1L, 1L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); }
@Test public void testPutLdpRs() throws Exception { final TriplestoreResourceService svc = new TriplestoreResourceService( connect(wrap(rdf.createDataset().asJenaDatasetGraph()))); svc.initialize(); final Dataset dataset = rdf.createDataset(); final BlankNode bnode = rdf.createBlankNode(); dataset.add(Trellis.PreferUserManaged, resource, DC.title, rdf.createLiteral("title")); dataset.add(Trellis.PreferAudit, resource, PROV.wasGeneratedBy, bnode); dataset.add(Trellis.PreferAudit, bnode, RDF.type, PROV.Activity); dataset.add(Trellis.PreferAudit, bnode, RDF.type, AS.Create); final Instant later = meanwhile(); assertDoesNotThrow(() -> allOf( svc.create(builder(resource).interactionModel(LDP.RDFSource).container(root).build(), dataset) .toCompletableFuture(), svc.touch(root).toCompletableFuture()).join(), "Unsuccessful create operation!"); allOf( svc.get(resource).thenAccept(checkResource(later, LDP.RDFSource, 1L, 3L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); }
@Test public void testUpdateRoot() throws Exception { final Instant early = now(); final TriplestoreResourceService svc = new TriplestoreResourceService( connect(wrap(rdf.createDataset().asJenaDatasetGraph()))); svc.initialize(); final Resource res1 = svc.get(root).toCompletableFuture().join(); assertAll("Check resource", checkResource(res1, root, LDP.BasicContainer, early)); assertAll("Check resource stream", checkResourceStream(res1, 0L, 5L, 0L, 0L, 0L)); final Dataset data = rdf.createDataset(); svc.get(root).thenAccept(res -> res.stream().filter(q -> !q.getGraphName().filter(Trellis.PreferServerManaged::equals).isPresent()) .forEach(data::add)).toCompletableFuture().join(); data.add(Trellis.PreferUserManaged, root, RDFS.label, rdf.createLiteral("Resource Label")); data.add(Trellis.PreferUserManaged, root, RDFS.seeAlso, rdf.createIRI("http://example.com")); data.add(Trellis.PreferUserManaged, root, LDP.inbox, rdf.createIRI("http://ldn.example.com/")); data.add(Trellis.PreferUserManaged, root, RDF.type, rdf.createLiteral("Some weird type")); data.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Update); final Instant later = meanwhile(); assertDoesNotThrow(() -> svc.replace(builder(root).interactionModel(LDP.BasicContainer).build(), data) .toCompletableFuture().join(), "Unsuccessful replace operation!"); final Resource res2 = svc.get(root).toCompletableFuture().join(); assertAll("Check resource", checkResource(res2, root, LDP.BasicContainer, later)); assertAll("Check resource stream", checkResourceStream(res2, 4L, 5L, 1L, 0L, 0L)); }
@Test public void testAddAuditTriples() throws Exception { final TriplestoreResourceService svc = new TriplestoreResourceService( connect(wrap(rdf.createDataset().asJenaDatasetGraph()))); svc.initialize(); final Dataset dataset1 = rdf.createDataset(); final Dataset dataset2 = rdf.createDataset(); final BlankNode bnode = rdf.createBlankNode(); dataset1.add(Trellis.PreferUserManaged, resource, DC.title, rdf.createLiteral("resource")); dataset1.add(Trellis.PreferUserManaged, resource, DC.alternative, rdf.createLiteral("alt title")); dataset2.add(Trellis.PreferAudit, resource, PROV.wasGeneratedBy, bnode); dataset2.add(Trellis.PreferAudit, bnode, RDF.type, AS.Create); final Instant later = meanwhile(); assertDoesNotThrow(() -> allOf( svc.create(builder(resource).interactionModel(LDP.Container).container(root).build(), dataset1) .toCompletableFuture(), svc.add(resource, dataset2).toCompletableFuture(), svc.touch(root).toCompletableFuture()).join(), "Unsuccessful create operation!"); allOf( svc.get(resource).thenAccept(checkResource(later, LDP.Container, 2L, 2L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); }
dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant later = meanwhile(); dataset.add(Trellis.PreferUserManaged, child, DC.description, rdf.createLiteral("nested resource")); final Instant evenLater = meanwhile(); dataset.add(Trellis.PreferServerManaged, child, RDF.type, LDP.Resource); final Instant preDelete = meanwhile();
dataset.add(Trellis.PreferUserManaged, resource, LDP.hasMemberRelation, DC.relation); final Instant later = meanwhile(); dataset.add(Trellis.PreferUserManaged, members, DC.title, rdf.createLiteral("member resource")); final Instant evenLater = meanwhile(); dataset.add(Trellis.PreferUserManaged, child, DC.title, rdf.createLiteral("ldp-dc child resource")); final Instant evenLater2 = meanwhile();
dataset.add(Trellis.PreferUserManaged, resource, RDFS.label, rdf.createLiteral("a label")); final Instant later = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant evenLater = meanwhile(); dataset.add(Trellis.PreferUserManaged, child, RDFS.label, rdf.createLiteral("a label")); final Instant evenLater2 = meanwhile();
dataset.add(Trellis.PreferAudit, bnode, RDF.type, AS.Create); final Instant later = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant evenLater = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Update); final Instant evenLater2 = meanwhile();
dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant later = meanwhile(); dataset.add(Trellis.PreferUserManaged, members, DC.title, rdf.createLiteral("Member resource")); final Instant evenLater = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant evenLater2 = meanwhile();
dataset.add(Trellis.PreferAudit, bnode, RDF.type, PROV.Activity); final Instant later = meanwhile(); dataset.add(Trellis.PreferUserManaged, members, DC.title, rdf.createLiteral("Membership LDP-RS")); final Instant evenLater = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant evenLater2 = meanwhile();
dataset.add(Trellis.PreferAudit, bnode0, RDF.type, AS.Create); final Instant later = meanwhile(); dataset.add(Trellis.PreferAudit, bnode1, RDF.type, AS.Create); final Instant evenLater = meanwhile(); dataset.add(Trellis.PreferAudit, bnode2, RDF.type, PROV.Activity); final Instant evenLater2 = meanwhile();
dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant later = meanwhile(); dataset.add(Trellis.PreferUserManaged, resource2, LDP.hasMemberRelation, DC.subject); final Instant later2 = meanwhile(); dataset.add(Trellis.PreferUserManaged, members, DC.description, rdf.createLiteral("LDP-RS membership test")); final Instant later3 = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant later4 = meanwhile(); dataset.add(Trellis.PreferUserManaged, child2, DC.title, rdf.createLiteral("ldp-dc (2) child resource")); final Instant later5 = meanwhile();
dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant later = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant evenLater = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant evenLater2 = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant evenLater3 = meanwhile(); dataset.add(Trellis.PreferUserManaged, child2, DC.title, rdf.createLiteral("Second child resource")); final Instant evenLater4 = meanwhile();
dataset.add(Trellis.PreferAudit, bnode, RDF.type, AS.Create); final Instant later = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant evenLater = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant evenLater2 = meanwhile(); dataset.add(Trellis.PreferAudit, rdf.createBlankNode(), RDF.type, AS.Create); final Instant evenLater3 = meanwhile(); dataset.add(Trellis.PreferAudit, bnode2, PROV.atTime, rdf.createLiteral(now().toString(), XSD.dateTime)); final Instant evenLater4 = meanwhile();