Example usage for org.apache.commons.rdf.api Dataset contains

List of usage examples for org.apache.commons.rdf.api Dataset contains

Introduction

In this page you can find the example usage for org.apache.commons.rdf.api Dataset contains.

Prototype

@Override
boolean contains(Quad quad);

Source Link

Document

Check if dataset contains quad.

Usage

From source file:org.trellisldp.api.JoiningResourceServiceTest.java

@Test
public void testMergingBehavior() {
    final Quad testMutableQuad = createQuad(testResourceId2, testResourceId2, testResourceId1, badId);
    final Quad testImmutableQuad = createQuad(testResourceId2, testResourceId2, testResourceId1, badId);

    // store some data in mutable and immutable sides under the same resource ID
    final Resource testMutableResource = new TestResource(testResourceId2, testMutableQuad);
    assertNull(testable.create(Metadata.builder(testMutableResource).build(), testMutableResource.dataset())
            .toCompletableFuture().join(), "Couldn't create a resource!");
    final Resource testImmutableResource = new TestResource(testResourceId2, testImmutableQuad);
    assertNull(testable.add(testResourceId2, testImmutableResource.dataset()).toCompletableFuture().join(),
            "Couldn't create an immutable resource!");

    final Resource retrieved = testable.get(testResourceId2).toCompletableFuture().join();
    assertEquals(testMutableResource.getIdentifier(), retrieved.getIdentifier(),
            "Resource was retrieved with wrong ID!");
    final Dataset quads = retrieved.dataset();
    assertTrue(quads.contains(testImmutableQuad), "Resource was retrieved without its immutable data!");
    assertTrue(quads.contains(testMutableQuad), "Resource was retrieved without its mutable data!");
    quads.remove(testImmutableQuad);/*  ww  w . j  ava  2  s  .  c  o m*/
    quads.remove(testMutableQuad);
    assertEquals(0, quads.size(), "Resource was retrieved with too much data!");
}

From source file:org.trellisldp.api.JoiningResourceServiceTest.java

@Test
public void testAppendSemantics() {
    final Quad testFirstQuad = createQuad(testResourceId3, testResourceId2, testResourceId1, badId);
    final Quad testSecondQuad = createQuad(testResourceId3, testResourceId2, testResourceId1, badId);

    // store some data in mutable and immutable sides under the same resource ID
    final Resource testFirstResource = new TestResource(testResourceId3, testFirstQuad);
    assertNull(testable.add(testResourceId3, testFirstResource.dataset()).toCompletableFuture().join(),
            "Couldn't create an immutable resource!");
    final Resource testSecondResource = new TestResource(testResourceId3, testSecondQuad);
    assertNull(testable.add(testResourceId3, testSecondResource.dataset()).toCompletableFuture().join(),
            "Couldn't add to an immutable resource!");

    final Resource retrieved = testable.get(testResourceId3).toCompletableFuture().join();
    assertEquals(testResourceId3, retrieved.getIdentifier(), "Resource was retrieved with wrong ID!");
    final Dataset quads = retrieved.dataset();
    assertTrue(quads.contains(testFirstQuad), "Resource was retrieved without its immutable data!");
    assertTrue(quads.contains(testSecondQuad), "Resource was retrieved without its mutable data!");
    quads.remove(testFirstQuad);/*from  w  ww .  j a  va 2s. c o  m*/
    quads.remove(testSecondQuad);
    assertEquals(0, quads.size(), "Resource was retrieved with too much data!");
}

From source file:org.trellisldp.test.ResourceServiceTests.java

/**
 * Test creating a resource.//from   ww  w  . j  a  va2 s. c  o  m
 * @throws Exception if the operation failed
 */
@Test
@DisplayName("Test creating resource")
default void testCreateResource() throws Exception {
    final RDF rdf = getInstance();
    final IRI identifier = rdf.createIRI(TRELLIS_DATA_PREFIX + getResourceService().generateIdentifier());
    final Dataset dataset = buildDataset(identifier, "Creation Test", SUBJECT1);

    assertEquals(MISSING_RESOURCE, getResourceService().get(identifier).toCompletableFuture().join(),
            "Check for no pre-existing LDP-RS");
    assertDoesNotThrow(
            () -> getResourceService().create(Metadata.builder(identifier).interactionModel(LDP.RDFSource)
                    .container(ROOT_CONTAINER).build(), dataset).toCompletableFuture().join(),
            "Check that the resource was successfully created");
    final Resource res = getResourceService().get(identifier).toCompletableFuture().join();
    assertAll("Check resource stream", res.stream(Trellis.PreferUserManaged)
            .map(toQuad(Trellis.PreferUserManaged))
            .map(q -> () -> assertTrue(dataset.contains(q), "Verify that the quad is from the dataset: " + q)));
}

From source file:org.trellisldp.test.ResourceServiceTests.java

/**
 * Test replacing a resource./*from ww  w  . jav a 2s.  co  m*/
 * @throws Exception if the operation failed
 */
@Test
@DisplayName("Test replacing resource")
default void testReplaceResource() throws Exception {
    final RDF rdf = getInstance();
    final IRI identifier = rdf.createIRI(TRELLIS_DATA_PREFIX + getResourceService().generateIdentifier());
    final Dataset dataset = buildDataset(identifier, "Replacement Test", SUBJECT2);

    assertEquals(MISSING_RESOURCE, getResourceService().get(identifier).toCompletableFuture().join(),
            "Check for no pre-existing LDP-RS");
    assertDoesNotThrow(
            () -> getResourceService().create(Metadata.builder(identifier).interactionModel(LDP.RDFSource)
                    .container(ROOT_CONTAINER).build(), dataset).toCompletableFuture().join(),
            "Check that the LDP-RS was successfully created");

    dataset.clear();
    dataset.add(Trellis.PreferUserManaged, identifier, SKOS.prefLabel, rdf.createLiteral("preferred label"));
    dataset.add(Trellis.PreferUserManaged, identifier, SKOS.altLabel, rdf.createLiteral("alternate label"));
    dataset.add(Trellis.PreferUserManaged, identifier, type, SKOS.Concept);

    assertDoesNotThrow(
            () -> getResourceService().replace(Metadata.builder(identifier).interactionModel(LDP.RDFSource)
                    .container(ROOT_CONTAINER).build(), dataset).toCompletableFuture().join(),
            "Check that the LDP-RS was successfully replaced");
    final Resource res = getResourceService().get(identifier).toCompletableFuture().join();
    assertAll("Check the replaced LDP-RS stream",
            res.stream(Trellis.PreferUserManaged).map(toQuad(Trellis.PreferUserManaged))
                    .map(q -> () -> assertTrue(dataset.contains(q),
                            "Check that the quad comes from the dataset: " + q)));
    assertEquals(3L, res.stream(Trellis.PreferUserManaged).count(),
            "Check the total user-managed triple count");
}

From source file:org.trellisldp.test.ResourceServiceTests.java

/**
 * Test adding immutable data.//w  ww. j a  v  a 2 s . c o m
 * @throws Exception if the operation failed
 */
@Test
@DisplayName("Test adding immutable data")
default void testAddImmutableData() throws Exception {
    final RDF rdf = getInstance();
    final IRI identifier = rdf.createIRI(TRELLIS_DATA_PREFIX + getResourceService().generateIdentifier());
    final Dataset dataset0 = buildDataset(identifier, "Immutable Resource Test", SUBJECT2);

    assertDoesNotThrow(
            () -> getResourceService().create(Metadata.builder(identifier).interactionModel(LDP.RDFSource)
                    .container(ROOT_CONTAINER).build(), dataset0).toCompletableFuture().join(),
            "Check the successful creation of an LDP-RS");

    final IRI audit1 = rdf.createIRI(TRELLIS_BNODE_PREFIX + getResourceService().generateIdentifier());
    final Dataset dataset1 = rdf.createDataset();
    dataset1.add(Trellis.PreferAudit, identifier, PROV.wasGeneratedBy, audit1);
    dataset1.add(Trellis.PreferAudit, audit1, type, PROV.Activity);
    dataset1.add(Trellis.PreferAudit, audit1, type, AS.Create);
    dataset1.add(Trellis.PreferAudit, audit1, PROV.atTime, rdf.createLiteral(now().toString(), XSD.dateTime));

    assertDoesNotThrow(() -> getResourceService().add(identifier, dataset1).toCompletableFuture().join(),
            "Check the successful addition of audit quads");

    final Resource res = getResourceService().get(identifier).toCompletableFuture().join();
    assertAll("Check the audit stream", res.stream(Trellis.PreferAudit).map(toQuad(Trellis.PreferAudit))
            .map(q -> () -> assertTrue(dataset1.contains(q), "Check that the audit stream includes: " + q)));
    assertEquals(4L, res.stream(Trellis.PreferAudit).count(), "Check the audit triple count");

    final IRI audit2 = rdf.createIRI(TRELLIS_BNODE_PREFIX + getResourceService().generateIdentifier());
    final Dataset dataset2 = rdf.createDataset();
    dataset2.add(Trellis.PreferAudit, identifier, PROV.wasGeneratedBy, audit2);
    dataset2.add(Trellis.PreferAudit, audit2, type, PROV.Activity);
    dataset2.add(Trellis.PreferAudit, audit2, type, AS.Update);
    dataset2.add(Trellis.PreferAudit, audit2, PROV.atTime, rdf.createLiteral(now().toString(), XSD.dateTime));

    assertDoesNotThrow(() -> getResourceService().add(identifier, dataset2).toCompletableFuture().join(),
            "Check that audit triples are added successfully");

    final Resource res2 = getResourceService().get(identifier).toCompletableFuture().join();

    final Dataset combined = rdf.createDataset();
    dataset1.stream().forEach(combined::add);
    dataset2.stream().forEach(combined::add);

    assertAll("Check the audit stream", res2.stream(Trellis.PreferAudit).map(toQuad(Trellis.PreferAudit))
            .map(q -> () -> assertTrue(combined.contains(q), "Check that the audit stream includes: " + q)));
    assertEquals(8L, res2.stream(Trellis.PreferAudit).count(), "Check the audit triple count");
}