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.*;
21
22 import org.apache.commons.rdf.api.BlankNode;
23 import org.apache.commons.rdf.api.RDFTerm;
24 import org.apache.jena.graph.Node;
25 import org.apache.jena.graph.NodeFactory;
26 import org.apache.jena.sparql.core.Quad;
27 import org.junit.Test;
28
29 public class GeneralizedRDFQuadTest {
30
31 private final JenaRDF jena = new JenaRDF();
32
33 @Test
34 public void bnodeProperty() throws Exception {
35 final BlankNode b1 = jena.createBlankNode("b1");
36 final JenaIRI ex1 = jena.createIRI("http://example.com/ex1");
37 final JenaIRI ex2 = jena.createIRI("http://example.com/ex2");
38 final JenaIRI ex3 = jena.createIRI("http://example.com/ex3");
39
40 final JenaGeneralizedQuadLike q = jena.createGeneralizedQuad(ex1, b1, ex2, ex3);
41 assertEquals(ex1, q.getSubject());
42 assertEquals(ex2, q.getObject());
43 assertEquals(b1, q.getPredicate());
44 assertEquals(ex3, q.getGraphName().get());
45 assertTrue(q.asJenaQuad().getPredicate().isBlank());
46 }
47
48 @Test
49 public void literalPredicate() throws Exception {
50 final JenaIRI ex1 = jena.createIRI("http://example.com/ex1");
51 final JenaIRI ex2 = jena.createIRI("http://example.com/ex2");
52 final JenaIRI ex3 = jena.createIRI("http://example.com/ex3");
53 final JenaLiteral lit = jena.createLiteral("Hello");
54
55 final JenaGeneralizedQuadLike q = jena.createGeneralizedQuad(ex1, lit, ex2, ex3);
56 assertEquals(ex1, q.getSubject());
57 assertEquals(ex2, q.getObject());
58 assertEquals(lit, q.getPredicate());
59 assertEquals(ex3, q.getGraphName().get());
60 assertTrue(q.asJenaQuad().getPredicate().isLiteral());
61 }
62
63
64 @Test
65 public void literalSubject() throws Exception {
66 final JenaIRI ex1 = jena.createIRI("http://example.com/ex1");
67 final JenaIRI ex2 = jena.createIRI("http://example.com/ex2");
68 final JenaIRI ex3 = jena.createIRI("http://example.com/ex3");
69 final JenaLiteral lit = jena.createLiteral("Hello");
70
71 final JenaGeneralizedQuadLike q = jena.createGeneralizedQuad(lit, ex1, ex2, ex3);
72 assertEquals(lit, q.getSubject());
73 assertEquals(ex1, q.getPredicate());
74 assertEquals(ex2, q.getObject());
75 assertEquals(ex3, q.getGraphName().get());
76 assertTrue(q.asJenaQuad().getSubject().isLiteral());
77 }
78
79 @Test
80 public void literalSubjectDefaultGraphGen() throws Exception {
81 final JenaIRI ex1 = jena.createIRI("http://example.com/ex1");
82 final JenaIRI ex2 = jena.createIRI("http://example.com/ex2");
83
84 final JenaRDFTerm defG = jena.asRDFTerm(Quad.defaultGraphNodeGenerated);
85 final JenaLiteral lit = jena.createLiteral("Hello");
86
87 final JenaGeneralizedQuadLike q = jena.createGeneralizedQuad(lit, ex1, ex2, defG);
88 assertEquals(lit, q.getSubject());
89 assertEquals(ex1, q.getPredicate());
90 assertEquals(ex2, q.getObject());
91 assertTrue(q.asJenaQuad().getSubject().isLiteral());
92 assertFalse(q.getGraphName().isPresent());
93 assertTrue(q.asJenaQuad().isDefaultGraph());
94 }
95
96 @Test
97 public void asGeneralizedQuad() throws Exception {
98 final Node s = NodeFactory.createLiteral("Hello");
99 final Node p = NodeFactory.createBlankNode();
100 final Node o = NodeFactory.createURI("http://example.com/ex");
101 final Node g = Quad.defaultGraphIRI;
102 final Quad jq = Quad.create(g, s, p, o);
103 final JenaQuadLike<RDFTerm> q = jena.asGeneralizedQuad(jq);
104 assertEquals(jena.createLiteral("Hello"), q.getSubject());
105 assertEquals(jena.asRDFTerm(p), q.getPredicate());
106 assertEquals(jena.createIRI("http://example.com/ex"), q.getObject());
107 assertFalse(q.getGraphName().isPresent());
108 }
109
110 @Test
111 public void literalGraph() throws Exception {
112 final JenaIRI ex1 = jena.createIRI("http://example.com/ex1");
113 final JenaIRI ex2 = jena.createIRI("http://example.com/ex2");
114 final JenaIRI ex3 = jena.createIRI("http://example.com/ex3");
115 final JenaLiteral lit = jena.createLiteral("Hello");
116
117 final JenaGeneralizedQuadLike q = jena.createGeneralizedQuad(ex1, ex2, ex3, lit);
118 assertEquals(ex1, q.getSubject());
119 assertEquals(ex2, q.getPredicate());
120 assertEquals(ex3, q.getObject());
121 assertEquals(lit, q.getGraphName().get());
122 assertTrue(q.asJenaQuad().getGraph().isLiteral());
123 }
124
125
126
127 }