1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.rdf.jena;
19
20 import static org.junit.Assert.assertEquals;
21 import static org.junit.Assert.assertSame;
22 import static org.junit.Assert.assertTrue;
23
24 import org.apache.commons.rdf.api.AbstractRDFTest;
25 import org.apache.commons.rdf.api.BlankNode;
26 import org.apache.commons.rdf.api.Dataset;
27 import org.apache.commons.rdf.api.IRI;
28 import org.apache.commons.rdf.api.Quad;
29 import org.apache.commons.rdf.simple.SimpleRDF;
30 import org.apache.jena.rdf.model.Model;
31 import org.apache.jena.rdf.model.Property;
32 import org.apache.jena.rdf.model.RDFNode;
33 import org.apache.jena.rdf.model.Resource;
34 import org.apache.jena.rdf.model.Statement;
35 import org.apache.jena.sparql.core.DatasetGraph;
36 import org.apache.jena.sparql.core.DatasetGraphFactory;
37 import org.junit.Test;
38
39 public class JenaRDFTest extends AbstractRDFTest {
40
41 @Override
42 public JenaRDF createFactory() {
43 return new JenaRDF();
44 }
45
46 @Test
47 public void roundTripDatasetGraphShouldMaintainIdentity() {
48 DatasetGraph dsg = DatasetGraphFactory.create();
49 JenaDataset dataset = createFactory().asDataset(dsg);
50 DatasetGraph roundTrippedDSG = createFactory().asJenaDatasetGraph(dataset);
51 assertSame("Should have gotten the same DatasetGraph object from a round trip!", dsg, roundTrippedDSG);
52 }
53
54 @Test
55 public void testSimpleDatasetConversion() {
56 SimpleRDF factory = new SimpleRDF();
57 Dataset ds = factory.createDataset();
58 final BlankNode subject = factory.createBlankNode("b1");
59 final IRI predicate = factory.createIRI("http://example.com/pred");
60 final IRI object = factory.createIRI("http://example.com/obj");
61 final IRI graph = factory.createIRI("http://example.com/graph");
62 final Quad quad = factory.createQuad(graph, subject, predicate, object);
63 ds.add(quad);
64 JenaRDF jenaFactory = createFactory();
65 org.apache.jena.query.Dataset jenaDS = jenaFactory.asJenaDataset(ds);
66 assertEquals("Should have found one named graph!", 1, jenaDS.asDatasetGraph().size());
67 Model namedModel = jenaDS.getNamedModel(graph.getIRIString());
68 assertEquals("Should have found one triple in named graph!", 1, namedModel.size());
69 Statement statement = namedModel.listStatements().next();
70 Resource jenaSubject = statement.getSubject();
71 Property jenaPredicate = statement.getPredicate();
72 RDFNode jenaObject = statement.getObject();
73 assertTrue(jenaSubject.isAnon());
74 assertTrue(jenaObject.isResource());
75 assertEquals(subject.ntriplesString(), "_:" + jenaSubject.getId().getLabelString());
76 assertEquals(predicate.getIRIString(), jenaPredicate.getURI());
77 assertEquals(object.getIRIString(), jenaObject.asResource().getURI());
78 }
79
80 }