/** Execute a SPARQL Update. * * @param update */ @Override public default void update(Update update) { update(new UpdateRequest(update)); }
@Test public void transaction_commit_read_01() { String testDataFile = DIR+"data.trig"; try ( RDFConnection conn = connection() ) { conn.begin(ReadWrite.WRITE); conn.loadDataset(dataset); conn.commit(); conn.end(); conn.begin(ReadWrite.READ); Model m = conn.fetch(); assertTrue(isomorphic(m, dataset.getDefaultModel())); conn.end(); } }
@Override public QueryExecution query(Query query) { return get().query(query); }
System.out.println("** Load a file"); Txn.executeWrite(conn, ()->conn.load("data.ttl")); conn.begin(ReadWrite.WRITE); conn.load("http://example/g0", "data.ttl"); conn.queryResultSet(query, ResultSetFormatter::out); conn.abort(); conn.end(); System.out.println("** After abort 1"); conn.load("http://example/g0", "data.ttl"); System.out.println("** Inside multistep transaction - fetch dataset"); Dataset ds2 = conn.fetchDataset(); RDFDataMgr.write(System.out, ds2, Lang.TRIG); conn.abort(); }); conn.queryResultSet(query, ResultSetFormatter::out);
@Test public void transaction_abort_read02() { Assume.assumeTrue(supportsAbort()); String testDataFile = DIR+"data.trig"; try ( RDFConnection conn = connection() ) { conn.begin(ReadWrite.WRITE); conn.loadDataset(testDataFile); conn.abort(); conn.end(); conn.begin(ReadWrite.READ); Model m = conn.fetch(); assertTrue(m.isEmpty()); conn.end(); } }
/** * Perform a health check on the service * * @return */ public boolean performHealthCheck() { boolean result = false; try (RDFConnection conn = createDefaultConnection()) { // A very basic select query, which all SPARQL systems // should be capable to process quickly, as usually it does not // match anything conn.querySelect("SELECT * { <http://example.org/healthcheck> a ?t }", (qs) -> { }); result = true; } catch (Exception e) { logger.debug("Health check failed with reason: ", e); } logger.debug("Health check response: " + result); return result; }
@Test public void dataset_post_1() { try ( RDFConnection conn = connection() ) { conn.loadDataset(dataset); Dataset ds1 = conn.fetchDataset(); assertTrue("Datasets not isomorphic", isomorphic(dataset, ds1)); } }
@Test public void testRDFConnectionError() throws Exception { final TriplestoreResourceService svc = new TriplestoreResourceService(mockRdfConnection); svc.initialize(); doThrow(new RuntimeException("Expected exception")).when(mockRdfConnection).update(any(UpdateRequest.class)); doThrow(new RuntimeException("Expected exception")).when(mockRdfConnection) .loadDataset(any(org.apache.jena.query.Dataset.class)); assertThrows(ExecutionException.class, () -> svc.create(builder(resource).interactionModel(LDP.RDFSource).container(root).build(), rdf.createDataset()).toCompletableFuture().get(), "No (create) exception with dropped backend connection!"); assertThrows(ExecutionException.class, () -> svc.add(resource, rdf.createDataset()).toCompletableFuture().get(), "No (add) exception with dropped backend connection!"); assertThrows(ExecutionException.class, () -> svc.delete(builder(resource).interactionModel(LDP.RDFSource).container(root).build()) .toCompletableFuture().get(), "No (delete) exception with dropped backend connection!"); assertThrows(ExecutionException.class, () -> svc.touch(resource).toCompletableFuture().get(), "No (touch) exception with dropped backend connection!"); }
@Test public void query_select_02() { AtomicInteger counter = new AtomicInteger(0); try ( RDFConnection conn = connection() ) { conn.loadDataset(DIR+"data.trig"); conn.querySelect("SELECT * { ?s ?p ?o}" , (r)->counter.incrementAndGet()); assertEquals(2, counter.get()); } }
@Override public void loadDataset(Dataset dataset) { get().loadDataset(dataset); }
@Test public void graph_put_1() { try ( RDFConnection conn = connection() ) { conn.put(model1); Dataset ds1 = conn.fetchDataset(); Model m0 = conn.fetch(); assertTrue("Models not isomorphic", isomorphic(model1, ds1.getDefaultModel())); Model m = conn.fetch(); assertTrue("Models not isomorphic", isomorphic(model1, m)); } }
@Override public boolean isClosed() { return get().isClosed(); }
@Test public void named_graph_put_2_different() { try ( RDFConnection conn = connection() ) { conn.put(graphName, model1); conn.put(graphName2, model2); Model m1 = conn.fetch(graphName); Model m2 = conn.fetch(graphName2); assertTrue("Models not isomorphic", isomorphic(m1, model1)); assertTrue("Models not isomorphic", isomorphic(m2, model2)); } }
@Test public void query_construct_02() { try ( RDFConnection conn = connection() ) { conn.loadDataset(DIR+"data.trig"); Model m = conn.queryConstruct("CONSTRUCT WHERE { ?s ?p ?o }"); assertEquals(2, m.size()); } }
@Test public void dataset_put_2() { try ( RDFConnection conn = connection() ) { conn.putDataset(dataset); conn.putDataset(dataset2); Dataset ds1 = conn.fetchDataset(); assertTrue("Datasets not isomorphic", isomorphic(dataset2, ds1)); } }
@Override public Dataset fetchDataset() { return get().fetchDataset(); }