@Test public void testInitializeRoot() { final Instant early = now(); final TriplestoreResourceService svc = new TriplestoreResourceService(); svc.initialize(); final Resource res = svc.get(root).toCompletableFuture().join(); assertAll("Check resource", checkResource(res, root, LDP.BasicContainer, early)); assertAll("Check resource stream", checkResourceStream(res, 0L, 5L, 0L, 0L, 0L)); }
@Test public void testInitializeRoot2() { final Instant early = now(); final JenaDataset dataset = rdf.createDataset(); dataset.add(Trellis.PreferServerManaged, root, RDF.type, LDP.BasicContainer); dataset.add(Trellis.PreferServerManaged, root, DC.modified, rdf.createLiteral(early.toString(), XSD.dateTime)); final RDFConnection rdfConnection = connect(wrap(dataset.asJenaDatasetGraph())); final TriplestoreResourceService svc = new TriplestoreResourceService(rdfConnection); svc.initialize(); final Resource res = svc.get(root).toCompletableFuture().join(); assertAll("Check resource", checkResource(res, root, LDP.BasicContainer, early)); assertAll("Check resource stream", checkResourceStream(res, 0L, 0L, 0L, 0L, 0L)); }
@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 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)); }
svc.get(resource).thenAccept(checkResource(later, LDP.DirectContainer, 4L, 0L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(members).thenAccept(checkMember(evenLater, 1L, 0L, 0L)).toCompletableFuture(), svc.get(members).thenAccept(res -> assertFalse(res.getBinaryMetadata().isPresent(), "Unexpected binary metadata!")).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(later, LDP.DirectContainer, 4L, 0L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkPredates(evenLater)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 2L)).toCompletableFuture()).join(); svc.get(child).thenAccept(checkChild(evenLater2, 1L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(evenLater2, LDP.DirectContainer, 4L, 0L, 1L)) .toCompletableFuture(), svc.get(resource).thenAccept(res -> assertTrue(res.stream(LDP.PreferContainment) .anyMatch(isEqual(rdf.createTriple(resource, LDP.contains, child))), "Missing contains triple!")) .toCompletableFuture(), svc.get(members).thenAccept(checkMember(evenLater2, 1L, 0L, 1L)).toCompletableFuture(), svc.get(members).thenAccept(res -> assertTrue(res.stream(LDP.PreferMembership) .anyMatch(isEqual(rdf.createTriple(members, DC.relation, child))), "Missing membership triple!")) .toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 2L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater2)).toCompletableFuture()).join();
svc.get(resource).thenAccept(checkResource(later, LDP.NonRDFSource, 1L, 1L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(res -> assertAll("Check binary", checkBinary(res, binaryIdentifier, "text/plain"))).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(resource3).thenAccept(res -> { assertAll("Check resource", checkResource(res, resource3, LDP.RDFSource, evenLater)); assertAll("Check resource stream", checkResourceStream(res, 1L, 0L, 1L, 0L, 0L)); assertFalse(res.getBinaryMetadata().isPresent(), "Unexpected binary metadata!"); }).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater)).toCompletableFuture(), svc.get(root).thenAccept(res -> assertFalse(res.getBinaryMetadata().isPresent(), "unexpected binary metadata!")).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(later, LDP.NonRDFSource, 1L, 1L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkPredates(evenLater)).toCompletableFuture()).join();
svc.get(resource).thenAccept(checkResource(later, LDP.Container, 2L, 1L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(child).thenAccept(checkChild(evenLater, 2L, 1L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(evenLater, LDP.Container, 2L, 1L, 1L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater)).toCompletableFuture()).join(); svc.get(child).thenAccept(res -> assertEquals(DELETED_RESOURCE, res, "Incorrect resource object!")) .toCompletableFuture(), svc.get(resource).thenAccept(checkResource(preDelete, LDP.Container, 2L, 1L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(preDelete)).toCompletableFuture()).join();
svc.get(resource).thenAccept(checkResource(later, LDP.BasicContainer, 3L, 0L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(child).thenAccept(checkChild(evenLater, 2L, 1L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(evenLater, LDP.BasicContainer, 3L, 0L, 1L)) .toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater)).toCompletableFuture()).join(); svc.get(child).thenAccept(checkChild(evenLater2, 2L, 2L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(evenLater, LDP.BasicContainer, 3L, 0L, 1L)) .toCompletableFuture(), svc.get(resource).thenAccept(checkPredates(evenLater2)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater2)).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 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(); }
svc.get(resource).thenAccept(checkResource(later, LDP.IndirectContainer, 5L, 1L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(resource).thenAccept(checkResource(later, LDP.IndirectContainer, 5L, 1L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkPredates(evenLater)).toCompletableFuture(), svc.get(members).thenAccept(checkMember(evenLater, 1L, 2L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 2L)).toCompletableFuture()).join(); svc.get(child).thenAccept(checkChild(evenLater2, 1L, 1L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(evenLater2, LDP.IndirectContainer, 5L, 1L, 1L)) .toCompletableFuture(), svc.get(resource).thenAccept(res -> assertTrue(res.stream(LDP.PreferContainment) .anyMatch(isEqual(rdf.createTriple(resource, LDP.contains, child))), "Missing contains triple!")) .toCompletableFuture(), svc.get(members).thenAccept(checkMember(evenLater2, 1L, 2L, 1L)).toCompletableFuture(), svc.get(members).thenAccept(res -> assertTrue(res.stream(LDP.PreferMembership) .anyMatch(isEqual(rdf.createTriple(members, RDFS.label, child))), "Missing membership triple!")) .toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 2L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater2)).toCompletableFuture()).join();
svc.get(resource).thenAccept(checkResource(later, LDP.Container, 3L, 3L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(child).thenAccept(checkChild(evenLater, 1L, 1L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(evenLater, LDP.Container, 3L, 3L, 1L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater)).toCompletableFuture()).join(); "Unsuccessful create operation!"); allOf( svc.get(child).thenAccept(checkChild(evenLater2, 3L, 2L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(evenLater, LDP.Container, 3L, 3L, 1L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater2)).toCompletableFuture(), svc.get(resource).thenAccept(checkPredates(evenLater2)).toCompletableFuture()).join();
svc.get(resource).thenAccept(checkResource(later, LDP.IndirectContainer, 4L, 2L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(members).thenAccept(checkMember(evenLater, 1L, 3L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(later, LDP.IndirectContainer, 4L, 2L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkPredates(evenLater)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 2L)).toCompletableFuture()).join(); svc.get(child).thenAccept(checkChild(evenLater2, 2L, 1L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(evenLater2, LDP.IndirectContainer, 4L, 2L, 1L)) .toCompletableFuture(), svc.get(resource).thenAccept(res -> assertTrue(res.stream(LDP.PreferContainment) .anyMatch(isEqual(rdf.createTriple(resource, LDP.contains, child))), "Missing contains triple!")) .toCompletableFuture(), svc.get(members).thenAccept(checkMember(evenLater2, 1L, 3L, 2L)).toCompletableFuture(), svc.get(members).thenAccept(res -> { assertTrue(res.stream(LDP.PreferMembership) .anyMatch(isEqual(rdf.createTriple(members, RDFS.label, label2))), "Missing member triple (1)!"); .anyMatch(isEqual(rdf.createTriple(members, RDFS.label, label1))), "Missing member triple (2)!"); }).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 2L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater2)).toCompletableFuture()).join();
svc.get(resource).thenAccept(checkResource(later, LDP.DirectContainer, 5L, 0L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(child).thenAccept(checkChild(evenLater, 1L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(res -> { assertAll("Check resource", checkResource(res, resource, LDP.DirectContainer, evenLater)); assertAll("Check resource stream", checkResourceStream(res, 5L, 0L, 0L, 1L, 1L)); .anyMatch(isEqual(rdf.createTriple(resource, DC.relation, child))), "Missing membership triple!"); }).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater)).toCompletableFuture()).join();
svc.get(resource).thenAccept(checkResource(later, LDP.IndirectContainer, 7L, 4L, 0L)) .toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(members).thenAccept(checkMember(evenLater, 1L, 4L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(later, LDP.IndirectContainer, 7L, 4L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkPredates(evenLater)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 2L)).toCompletableFuture()).join(); svc.get(child).thenAccept(checkChild(evenLater2, 1L, 3L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(evenLater2, LDP.IndirectContainer, 7L, 4L, 1L)) .toCompletableFuture(), svc.get(resource).thenAccept(res -> assertTrue(res.stream(LDP.PreferContainment) .anyMatch(isEqual(rdf.createTriple(resource, LDP.contains, child))), "Missing contains triple!")) .toCompletableFuture(), svc.get(members).thenAccept(checkMember(evenLater2, 1L, 4L, 1L)).toCompletableFuture(), svc.get(members).thenAccept(res -> assertTrue(res.stream(LDP.PreferMembership) .anyMatch(isEqual(rdf.createTriple(members, RDFS.label, label))), "Missing member triple!")) .toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 2L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater2)).toCompletableFuture()).join();
svc.get(resource).thenAccept(checkResource(later, LDP.DirectContainer, 5L, 1L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(resource2).thenAccept(res -> { assertAll("Check resource", checkResource(res, resource2, LDP.DirectContainer, evenLater)); assertAll("Check resource stream", checkResourceStream(res, 3L, 0L, 1L, 0L, 0L)); }).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 2L)).toCompletableFuture()).join(); svc.get(members).thenAccept(checkMember(evenLater2, 1L, 1L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(later, LDP.DirectContainer, 5L, 1L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkPredates(evenLater2)).toCompletableFuture(), svc.get(resource2).thenAccept(checkPredates(evenLater2)).toCompletableFuture(), svc.get(resource2).thenAccept(res -> assertAll("Check resource stream", checkResourceStream(res, 3L, 0L, 1L, 0L, 0L))).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater2, 3L)).toCompletableFuture()).join(); svc.get(child).thenAccept(res -> { assertAll("Check resource", checkResource(res, child, LDP.RDFSource, evenLater3)); assertAll("Check resource stream", checkResourceStream(res, 1L, 0L, 1L, 1L, 0L)); }).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(evenLater3, LDP.DirectContainer, 5L, 1L, 1L)) .toCompletableFuture(), svc.get(resource).thenAccept(res -> assertTrue(res.stream(LDP.PreferContainment) .anyMatch(isEqual(rdf.createTriple(resource, LDP.contains, child))), "Missing contains triple!")) .toCompletableFuture(), svc.get(members).thenAccept(checkMember(evenLater2, 1L, 1L, 0L)).toCompletableFuture(), svc.get(members).thenAccept(checkPredates(evenLater3)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater2, 3L)).toCompletableFuture(),
svc.get(resource).thenAccept(checkResource(later, LDP.DirectContainer, 4L, 1L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(resource2).thenAccept(res -> { assertAll("Check resource", checkResource(res, resource2, LDP.DirectContainer, later2)); assertAll("Check resource stream", checkResourceStream(res, 6L, 0L, 1L, 0L, 0L)); }).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later2, 2L)).toCompletableFuture()).join(); svc.get(members).thenAccept(checkMember(later3, 2L, 1L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(later, LDP.DirectContainer, 4L, 1L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkPredates(later3)).toCompletableFuture(), svc.get(resource2).thenAccept(checkPredates(later3)).toCompletableFuture(), svc.get(resource2).thenAccept(res -> assertAll("Check resource stream", checkResourceStream(res, 6L, 0L, 1L, 0L, 0L))).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later3, 3L)).toCompletableFuture()).join(); svc.get(child).thenAccept(checkChild(later4, 1L, 1L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(later2, LDP.DirectContainer, 4L, 1L, 1L)).toCompletableFuture(), svc.get(resource).thenAccept(res -> assertTrue(res.stream(LDP.PreferContainment) .anyMatch(isEqual(rdf.createTriple(resource, LDP.contains, child))), "Missing contains triple!")) .toCompletableFuture(), svc.get(members).thenAccept(checkMember(later4, 2L, 1L, 1L)).toCompletableFuture(), svc.get(members).thenAccept(res -> assertTrue(res.stream(LDP.PreferMembership) .anyMatch(isEqual(rdf.createTriple(members, DC.relation, child))), "Missing membership triple!")) .toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later3, 3L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(later4)).toCompletableFuture()).join();
svc.get(resource).thenAccept(checkResource(later, LDP.IndirectContainer, 5L, 3L, 0L)).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(later, 1L)).toCompletableFuture()).join(); svc.get(resource2).thenAccept(res -> { assertAll("Check resource", checkResource(res, resource2, LDP.IndirectContainer, evenLater)); assertAll("Check resource stream", checkResourceStream(res, 4L, 0L, 1L, 0L, 0L)); }).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 2L)).toCompletableFuture()).join(); svc.get(members).thenAccept(checkMember(evenLater2, 1L, 1L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(later, LDP.IndirectContainer, 5L, 3L, 0L)).toCompletableFuture(), svc.get(resource).thenAccept(checkPredates(evenLater2)).toCompletableFuture(), svc.get(resource2).thenAccept(checkPredates(evenLater2)).toCompletableFuture(), svc.get(resource2).thenAccept(res -> assertAll("Check resource stream", checkResourceStream(res, 4L, 0L, 1L, 0L, 0L))).toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 3L)).toCompletableFuture()).join(); svc.get(child).thenAccept(checkChild(evenLater3, 1L, 1L)).toCompletableFuture(), svc.get(resource).thenAccept(checkResource(evenLater3, LDP.IndirectContainer, 5L, 3L, 1L)) .toCompletableFuture(), svc.get(resource).thenAccept(res -> assertTrue(res.stream(LDP.PreferContainment) .anyMatch(isEqual(rdf.createTriple(resource, LDP.contains, child))), "Missing contains triple!")) .toCompletableFuture(), svc.get(members).thenAccept(checkMember(evenLater3, 1L, 1L, 1L)).toCompletableFuture(), svc.get(members).thenAccept(res -> assertTrue(res.stream(LDP.PreferMembership) .anyMatch(isEqual(rdf.createTriple(members, RDFS.label, label))), "Missing membership triple!")) .toCompletableFuture(), svc.get(root).thenAccept(checkRoot(evenLater, 3L)).toCompletableFuture(), svc.get(root).thenAccept(checkPredates(evenLater3)).toCompletableFuture()).join();