/** Example setup - in-memory dataset with two graphs, one triple in each */ private static Dataset setup() { Dataset ds = TDBFactory.createDataset() ; DatasetGraphTDB dsg = (DatasetGraphTDB)(ds.asDatasetGraph()) ; Quad q1 = SSE.parseQuad("(<http://example/g1> <http://example/s> <http://example/p> <http://example/o1>)") ; Quad q2 = SSE.parseQuad("(<http://example/g2> <http://example/s> <http://example/p> <http://example/o2>)") ; dsg.add(q1) ; dsg.add(q2) ; return ds ; }
private static void txnAddData(DatasetGraph dsg) { // Unique blank node. Quad q = SSE.parseQuad("(_ _:b :p 1)") ; Txn.executeWrite(dsg, ()->dsg.add(q)); } }
@Test(expected=ConcurrentModificationException.class) public void mrswDataset1() { DatasetGraph dsg = create().asDatasetGraph() ; Quad quad = SSE.parseQuad("(<g> <y> <p> 99)") ; Iterator<Quad> iter = dsg.find() ; dsg.add(quad) ; // Bad - after an update. iter.hasNext() ; iter.next() ; }
@Test public void serialize_quad_01() throws Exception { Quad q = SSE.parseQuad("(:g :s :p :o)"); Quad q1 = roundTrip(q); assertEquals(q, q1); }
@Before public void before() { ds = TDBFactory.createDataset() ; ds.asDatasetGraph().add(SSE.parseQuad("(<g> <s> <p> 1)")) ; }
@Test public void trig_02() { String s = "<g> { <x> <p> <q> }" ; CatchParserOutput sink = parseCapture(s, Lang.TRIG) ; assertEquals(1, sink.startCalled) ; assertEquals(1, sink.finishCalled) ; assertEquals(0, sink.triples.size()) ; assertEquals(1, sink.quads.size()) ; Quad q = SSE.parseQuad("(<http://base/g> <http://base/x> <http://base/p> <http://base/q>)") ; assertEquals(q, last(sink.quads)) ; }
@Test public void emptyGraph_1_link() { DatasetGraph dsg = emptyDataset() ; Node gn = NodeFactory.createURI("http://example/g") ; Quad q = SSE.parseQuad("(:g :s :p :o)"); dsg.add(q); List<Node> nodes1 = Iter.toList(dsg.listGraphNodes()); assertEquals(1, nodes1.size()); // Variation on emptyGraph_1 dsg.delete(q); List<Node> nodes2 = Iter.toList(dsg.listGraphNodes()); assertEquals(1, nodes2.size()); }
@Test public void emptyGraph_1() { DatasetGraph dsg = emptyDataset() ; Node gn = NodeFactory.createURI("http://example/g") ; Quad q = SSE.parseQuad("(:g :s :p :o)"); dsg.add(q); List<Node> nodes1 = Iter.toList(dsg.listGraphNodes()); assertEquals(1, nodes1.size()); dsg.delete(q); List<Node> nodes2 = Iter.toList(dsg.listGraphNodes()); assertEquals(0, nodes2.size()); }
@Test public void serialize_quad_02() throws Exception { Quad q = SSE.parseQuad("(_ :s :p :o)"); Quad q1 = roundTrip(q); assertEquals(q, q1); assertNotEquals(q.getSubject(), q1.getObject()); }
@Test public void graphDGS_update_1() { Quad q9 = SSE.parseQuad("(<g3> <s> <p> 9)") ; Graph g = makeNamedGraph(baseDSG, gn3) ; baseDSG.add(q9) ; Triple t = SSE.parseTriple("(<s> <p> 9)") ; assertTrue(g.contains(t)) ; }
@Test public void graphDGS_update_2() { Triple t = SSE.parseTriple("(<s> <p> 9)") ; Graph g = makeNamedGraph(baseDSG, gn3) ; g.add(t) ; Quad q9 = SSE.parseQuad("(<g3> <s> <p> 9)") ; assertTrue(baseDSG.contains(q9)) ; } }
@Test public void quad_03() { DatasetGraph dsg = emptyDataset() ; assertNotNull(dsg) ; Quad quad1 = SSE.parseQuad("(quad <g> <s> <p> <o1>)") ; Quad quad2 = SSE.parseQuad("(quad <g> <s> <p> <o2>)") ; dsg.add(quad1) ; dsg.add(quad2) ; dsg.deleteAny(NodeFactory.createURI("g"), NodeFactory.createURI("s"), null, null) ; assertFalse(dsg.contains(quad1)) ; assertFalse(dsg.contains(quad2)) ; }
@Test public void serialize_quad_03() throws Exception { Quad q = SSE.parseQuad("(<_:abc> ?y ?x <_:abc>)"); Quad q1 = roundTrip(q); assertEquals(q, q1); assertEquals(q.getGraph(), q1.getObject()); }
@Test public void graph_03() { Node g = NodeFactory.createURI("g") ; DatasetGraph dsg = emptyDataset() ; Graph data = SSE.parseGraph("(graph (<s> <p> <o>))") ; dsg.addGraph(g, data) ; Quad quad = SSE.parseQuad("(quad <g> <s> <p> <o>)") ; assertTrue(dsg.contains(quad)) ; }
private void isolationDataset(Isolation isolation, boolean expected) { Dataset base = DatasetFactory.createTxnMem(); RDFConnection conn1 = RDFConnectionFactory.connect(base, isolation); Quad quad = SSE.parseQuad("(:g :s :p :o)") ; try (RDFConnection conn2 = conn1;) { Dataset ds = conn2.fetchDataset(); ds.asDatasetGraph().add(quad); } assertEquals(expected, base.asDatasetGraph().contains(quad)); }
@Test public void serialize_quad_04() throws Exception { Quad q = SSE.parseQuad("(<_:abc> <_:abc> <_:def> <_:abc>)"); Quad q1 = roundTrip(q); assertEquals(q, q1); assertEquals(q.getSubject(), q1.getObject()); assertNotEquals(q.getSubject(), q1.getPredicate()); } }
@Test public void emptyGraph_2() { DatasetGraph dsg = emptyDataset() ; Node gn = NodeFactory.createURI("http://example/g") ; Quad q = SSE.parseQuad("(:g :s :p :o)"); dsg.add(q); assertTrue(dsg.containsGraph(gn)); dsg.delete(q); assertFalse(dsg.containsGraph(gn)); } }
@Test public void emptyGraph_2_link() { DatasetGraph dsg = emptyDataset() ; Node gn = NodeFactory.createURI("http://example/g") ; Quad q = SSE.parseQuad("(:g :s :p :o)"); dsg.add(q); assertTrue(dsg.containsGraph(gn)); // Variation on emptyGraph_2 dsg.delete(q); assertTrue(dsg.containsGraph(gn)); }
@Test public void graph_02() { Node g = NodeFactory.createURI("g") ; DatasetGraph dsg = emptyDataset() ; assertNotNull(dsg) ; Quad quad = SSE.parseQuad("(quad <g> <s> <p> <o>)") ; dsg.add(quad) ; Triple t = SSE.parseTriple("(<s> <p> <o>)") ; dsg.getGraph(g).delete(t) ; assertTrue(dsg.getDefaultGraph().isEmpty()) ; assertTrue(dsg.getGraph(NodeFactory.createURI("g")).isEmpty()) ; assertFalse(dsg.find(Node.ANY, Node.ANY, Node.ANY, Node.ANY).hasNext()) ; }
@Test public void quad_02() { DatasetGraph dsg = emptyDataset() ; assertNotNull(dsg) ; Quad quad = SSE.parseQuad("(quad <g> <s> <p> <o>)") ; dsg.add(quad) ; dsg.containsGraph(NodeFactory.createURI("g")) ; dsg.delete(quad) ; assertTrue(dsg.isEmpty()) ; assertTrue(dsg.getDefaultGraph().isEmpty()) ; assertTrue(dsg.getGraph(NodeFactory.createURI("g")).isEmpty()) ; }