@Test
public void testDirectContainer() {
final JenaDataset dataset = buildLdpDataset(LDP.DirectContainer);
dataset.add(Trellis.PreferServerManaged, identifier, DC.isPartOf, root);
dataset.add(Trellis.PreferServerManaged, identifier, LDP.member, member);
dataset.add(Trellis.PreferServerManaged, identifier, LDP.membershipResource, member);
dataset.add(Trellis.PreferServerManaged, identifier, LDP.hasMemberRelation, DC.subject);
dataset.add(Trellis.PreferServerManaged, identifier, LDP.insertedContentRelation, LDP.MemberSubject);
dataset.add(Trellis.PreferServerManaged, identifier, DC.modified, rdf.createLiteral(time, XSD.dateTime));
dataset.add(Trellis.PreferServerManaged, member, DC.isPartOf, root);
getChildIRIs().forEach(c -> dataset.add(Trellis.PreferServerManaged, c, DC.isPartOf, identifier));
final RDFConnection rdfConnection = connect(wrap(dataset.asJenaDatasetGraph()));
final TriplestoreResource res = new TriplestoreResource(rdfConnection, identifier);
res.fetchData();
assertTrue(res.exists(), "Missing resource!");
assertAll("Check resource", checkResource(res, identifier, LDP.DirectContainer, false, false, true));
assertAll("Check LDP properties", checkLdpProperties(res, member, DC.subject, null, LDP.MemberSubject));
assertAll("Check RDF stream", checkRdfStream(res, 2L, 0L, 0L, 0L, 4L));
final TriplestoreResource memberRes = new TriplestoreResource(rdfConnection, member);
memberRes.fetchData();
assertTrue(memberRes.exists(), "Missing resource!");
assertAll("Check resource", checkResource(memberRes, member, LDP.RDFSource, false, false, true));
assertAll("Check LDP properties", checkLdpProperties(memberRes, null, null, null, null));
assertAll("Check RDF stream", checkRdfStream(memberRes, 1L, 0L, 0L, 4L, 0L));
assertEquals(4L, memberRes.stream(singleton(LDP.PreferMembership)).map(Triple::getPredicate)
.filter(isEqual(DC.subject)).count(), "Incorrect triple count!");
}