@Test public void Prefixes() throws IOException { StringBuilder builder = new StringBuilder(); builder.append("PREFIX dc: <http://purl.org/dc/elements/1.1/>\n"); builder.append("INSERT { <http://example/egbook3> dc:title \"This is an example title\" }"); UpdateClause insert = parse(builder.toString()); assertEquals(UpdateClause.Type.INSERT, insert.getType()); assertEquals(DC.NS, insert.getPrefixes().get("dc")); }
@Test public void Clear() throws IOException { // CLEAR [ GRAPH <uri> ] UpdateClause clear = parse("CLEAR"); assertEquals(UpdateClause.Type.CLEAR, clear.getType()); }
@Test public void Delete_Data() throws IOException { // DELETE DATA [ FROM <uri> ]* { triples } UpdateClause delete = parse("DELETE DATA { ?s ?p ?o }"); assertEquals(UpdateClause.Type.DELETE, delete.getType()); assertEquals("?s ?p ?o", delete.getTemplate()); }
@Test public void Delete_Data_From_FROM() throws IOException { UpdateClause delete = parse("DELETE DATA FROM <http://ex1.com> FROM <http://ex2.com> { ?s ?p ?o }"); assertEquals(UpdateClause.Type.DELETE, delete.getType()); assertEquals(Arrays.asList(ex1, ex2), delete.getFrom()); assertEquals("?s ?p ?o", delete.getTemplate()); }
@Test public void Clear_Graph() throws IOException { UpdateClause clear = parse("CLEAR GRAPH <http://example.com>"); assertEquals(UpdateClause.Type.CLEAR, clear.getType()); assertEquals(example, clear.getSource()); }
@Test public void Drop() throws IOException { // DROP [ SILENT ] GRAPH <uri> UpdateClause create = parse("DROP GRAPH <http://example.com>"); assertEquals(UpdateClause.Type.DROP, create.getType()); assertFalse(create.isSilent()); }
@Test public void Insert_Data() throws IOException { // INSERT DATA [ INTO <uri> ]* { triples } UpdateClause insert = parse("INSERT DATA { ?s ?p ?o }"); assertEquals(UpdateClause.Type.INSERT, insert.getType()); assertEquals("?s ?p ?o", insert.getTemplate()); }
@Test public void Insert_Data_Into_Into() throws IOException { // INSERT DATA [ INTO <uri> ]* { triples } UpdateClause insert = parse("INSERT DATA INTO <http://ex1.com> INTO <http://ex2.com> { ?s ?p ?o }"); assertEquals(UpdateClause.Type.INSERT, insert.getType()); assertEquals("?s ?p ?o", insert.getTemplate()); assertEquals(Arrays.asList(ex1, ex2), insert.getInto()); }
@Test public void Create() throws IOException { // CREATE [ SILENT ] GRAPH <uri> UpdateClause create = parse("CREATE GRAPH <http://example.com>"); assertEquals(UpdateClause.Type.CREATE, create.getType()); assertFalse(create.isSilent()); }
@Test public void Create_Silent() throws IOException { UpdateClause create = parse("CREATE SILENT GRAPH <http://example.com>"); assertEquals(UpdateClause.Type.CREATE, create.getType()); assertTrue(create.isSilent()); }
@Test public void Delete_From_Where() throws IOException { UpdateClause delete = parse("DELETE FROM <http://ex1.com> { ?s rdf:type rdfs:Class } WHERE { ?s ?p ?o }"); assertEquals(UpdateClause.Type.DELETE, delete.getType()); assertEquals("?s rdf:type rdfs:Class", delete.getTemplate()); assertEquals("?s ?p ?o", delete.getPattern()); assertEquals(ex1, delete.getFrom().get(0)); }
@Test public void Delete_From_From_Where() throws IOException { UpdateClause delete = parse("DELETE FROM <http://ex1.com> FROM <http://ex2.com> { ?s rdf:type rdfs:Class } WHERE { ?s ?p ?o }"); assertEquals(UpdateClause.Type.DELETE, delete.getType()); assertEquals("?s rdf:type rdfs:Class", delete.getTemplate()); assertEquals("?s ?p ?o", delete.getPattern()); assertEquals(ex1, delete.getFrom().get(0)); }
@Test public void Modify_URI() throws IOException { UpdateClause modify = parse("MODIFY <http://ex1.com> DELETE { ?s ?p ?o } INSERT { ?s ?p2 ?o2 }"); assertEquals(UpdateClause.Type.MODIFY, modify.getType()); assertEquals("?s ?p ?o", modify.getDelete()); assertEquals("?s ?p2 ?o2", modify.getInsert()); assertEquals(ex1, modify.getInto().get(0)); }
@Test public void Insert_Into_Into_Where() throws IOException { // INSERT [ INTO <uri> ]* { template } [ WHERE { pattern } ] UpdateClause insert = parse("INSERT INTO <http://ex1.com> INTO <http://ex2.com> { ?s rdf:type rdfs:Class } WHERE { ?s ?p ?o }"); assertEquals(UpdateClause.Type.INSERT, insert.getType()); assertEquals("?s rdf:type rdfs:Class", insert.getTemplate()); assertEquals("?s ?p ?o", insert.getPattern()); assertEquals(Arrays.asList(ex1, ex2), insert.getInto()); }
@Test public void Load_From() throws IOException { // LOAD <remoteURI> [ INTO <uri> ] UpdateClause load = parse("LOAD <http://example.com>"); assertEquals(UpdateClause.Type.LOAD, load.getType()); assertEquals(example, load.getSource()); assertNull(load.getTarget()); }
@Test public void Modify() throws IOException { // MODIFY [ <uri> ]* DELETE { template } INSERT { template } [ WHERE { // pattern } ] UpdateClause modify = parse("MODIFY DELETE { ?s ?p ?o } INSERT { ?s ?p2 ?o2 }"); assertEquals(UpdateClause.Type.MODIFY, modify.getType()); assertEquals("?s ?p ?o", modify.getDelete()); assertEquals("?s ?p2 ?o2", modify.getInsert()); }
@Test public void Delete_Where() throws IOException { // DELETE [ FROM <uri> ]* { template } [ WHERE { pattern } ] UpdateClause delete = parse("DELETE { ?s rdf:type rdfs:Class } WHERE { ?s ?p ?o }"); assertEquals(UpdateClause.Type.DELETE, delete.getType()); assertEquals("?s rdf:type rdfs:Class", delete.getTemplate()); assertEquals("?s ?p ?o", delete.getPattern()); }
@Test public void Modify_Empty_Delete() throws IOException { UpdateClause modify = parse("MODIFY DELETE {} INSERT { ?s ?p2 ?o2 }"); assertEquals(UpdateClause.Type.MODIFY, modify.getType()); assertNull(modify.getDelete()); assertEquals("?s ?p2 ?o2", modify.getInsert()); }
@Test public void Load_From_Into() throws IOException { UpdateClause load = parse("LOAD <http://example.com> INTO <http://example2.com>"); assertEquals(UpdateClause.Type.LOAD, load.getType()); assertEquals(example, load.getSource()); assertEquals(new UID("http://example2.com"), load.getTarget()); }
@Test public void Modify_Where() throws IOException { UpdateClause modify = parse("MODIFY DELETE { ?s ?p ?o } INSERT { ?s2 ?p2 ?o2 } WHERE { ?s3 ?p3 ?o3 }"); assertEquals(UpdateClause.Type.MODIFY, modify.getType()); assertEquals("?s ?p ?o", modify.getDelete()); assertEquals("?s2 ?p2 ?o2", modify.getInsert()); assertEquals("?s3 ?p3 ?o3", modify.getPattern()); }