From 6f47a6a6a1c9ce8c6ed3131aa6cd6ce82c477c3c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Thu, 10 Sep 2015 20:11:36 +0000
Subject: [PATCH] - Renamed SPARQLSelectRendererTest - Added reverse construct
 tests

---
 test/src/SPARQLConstructVisitorTest.java      | 126 ++++++++++--------
 ... => SPARQLLinkkerRendererVisitorTest.java} |   2 +-
 2 files changed, 71 insertions(+), 57 deletions(-)
 rename test/src/{SPARQLSelectRendererVisitorTest.java => SPARQLLinkkerRendererVisitorTest.java} (99%)

diff --git a/test/src/SPARQLConstructVisitorTest.java b/test/src/SPARQLConstructVisitorTest.java
index 3be8ae6e..18f5bb83 100644
--- a/test/src/SPARQLConstructVisitorTest.java
+++ b/test/src/SPARQLConstructVisitorTest.java
@@ -61,6 +61,8 @@ public class SPARQLConstructVisitorTest {
      */
     @Test(groups = {"full", "impl", "raw"})
     public void ConstructSimplePropertiesRelation() throws Exception {
+	// JE: This is absolutely non standard:
+	// no init and alignment used without ontology declaration
         EDOALAlignment alignment = new EDOALAlignment();
         Relation opusRelation = new EquivRelation();
         Expression opusExpression1 = new PropertyId(new URI("http://exmo.inrialpes.fr/connectors#opus"));
@@ -77,31 +79,35 @@ public class SPARQLConstructVisitorTest {
 
         String expectedQuery1 = "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
                 + "PREFIX ns0:<http://exmo.inrialpes.fr/connectors#>\n"
-	    + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
+	        + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
                 + "PREFIX ns1:<http://purl.org/ontology/mo/>\n"
                 + "CONSTRUCT {\n"
-                + "?s ns1:opus ?o .\n"
+                + "?s ns0:opus ?o .\n"
                 + "}\n"
                 + "WHERE {\n"
-                + "?s ns0:opus ?o .\n"
+                + "?s ns1:opus ?o .\n"
                 + "}\n";
+	assertEquals( renderer.getQuery(opusCell), expectedQuery1 );
 
+	// Reverse direction
         String expectedQuery2 = "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
-                + "PREFIX ns0:<http://exmo.inrialpes.fr/connectors#>\n"
-	    + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
-                + "PREFIX ns1:<http://purl.org/ontology/mo/>\n"
+                + "PREFIX ns1:<http://exmo.inrialpes.fr/connectors#>\n"
+	        + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
+                + "PREFIX ns0:<http://purl.org/ontology/mo/>\n"
                 + "CONSTRUCT {\n"
                 + "?s ns0:opus ?o .\n"
                 + "}\n"
                 + "WHERE {\n"
                 + "?s ns1:opus ?o .\n"
                 + "}\n";
+        EDOALAlignment inval = new EDOALAlignment();
+        EDOALCell opusCell2 = opusCell.inverse();
+        inval.addAlignCell(opusCell2);
+        renderer = new SPARQLConstructRendererVisitor(writer);
+        renderer.init(properties);
+        inval.render(renderer);
+	assertEquals( renderer.getQuery(opusCell2), expectedQuery2 );
 
-	// JE2015-Tosee
-	assertEquals( renderer.getQuery(opusCell), expectedQuery2 );
-        //assertEquals(renderer.getQueryFromOnto1ToOnto2(opusCell), expectedQuery1);
-	//assertEquals(renderer.getQueryFromOnto2ToOnto1(opusCell), expectedQuery2);
-        
         //With Named Graph
         String namedGraph = "http://exmo.inrialpes.fr/connectors/one-graph";
         renderer = new SPARQLConstructRendererVisitor(writer);
@@ -112,21 +118,23 @@ public class SPARQLConstructVisitorTest {
         
         expectedQuery1 = "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
                 + "PREFIX ns0:<http://exmo.inrialpes.fr/connectors#>\n"
-	    + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
+	        + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
                 + "PREFIX ns1:<http://purl.org/ontology/mo/>\n"
                 + "CONSTRUCT {\n"
-                + "?s ns1:opus ?o .\n"
+                + "?s ns0:opus ?o .\n"
                 + "}\n"
                 + "WHERE {\n"
                 + "GRAPH <http://exmo.inrialpes.fr/connectors/one-graph> {\n"
-                + "?s ns0:opus ?o .\n"
+                + "?s ns1:opus ?o .\n"
                 + "}\n"
                 + "}\n";
+	assertEquals( renderer.getQuery(opusCell), expectedQuery1 );
 
+	// Reverse direction
         expectedQuery2 = "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
-                + "PREFIX ns0:<http://exmo.inrialpes.fr/connectors#>\n"
-	    + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
-                + "PREFIX ns1:<http://purl.org/ontology/mo/>\n"
+                + "PREFIX ns1:<http://exmo.inrialpes.fr/connectors#>\n"
+	        + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
+                + "PREFIX ns0:<http://purl.org/ontology/mo/>\n"
                 + "CONSTRUCT {\n"
                 + "?s ns0:opus ?o .\n"
                 + "}\n"
@@ -135,12 +143,12 @@ public class SPARQLConstructVisitorTest {
                 + "?s ns1:opus ?o .\n"
                 + "}\n"
                 + "}\n";
-
-	// JE2015-Tosee
-	assertEquals( renderer.getQuery(opusCell), expectedQuery2 );
-        //assertEquals(renderer.getQueryFromOnto1ToOnto2(opusCell), expectedQuery1);
-        //assertEquals(renderer.getQueryFromOnto2ToOnto1(opusCell), expectedQuery2);
-        
+        renderer = new SPARQLConstructRendererVisitor(writer);
+	properties = new Properties();
+	properties.setProperty( "graphName", namedGraph );
+        renderer.init(properties);
+        inval.render(renderer);
+	assertEquals( renderer.getQuery(opusCell2), expectedQuery2 );
 
         //For remote sparql endpoint : 
 //        String remoteServiceURIName = "http://example.org/remoteSparql";
@@ -199,30 +207,34 @@ public class SPARQLConstructVisitorTest {
 
         String expectedQuery1 = "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
                 + "PREFIX ns0:<http://exmo.inrialpes.fr/connectors#>\n"
-	    + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
+	        + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
                 + "PREFIX ns1:<http://purl.org/ontology/mo/>\n"
                 + "CONSTRUCT {\n"
-                + "?s rdf:type ns1:MusicalWork .\n"
+                + "?s rdf:type ns0:RootElement .\n"
                 + "}\n"
                 + "WHERE {\n"
-                + "?s rdf:type ns0:RootElement .\n"
+                + "?s rdf:type ns1:MusicalWork .\n"
                 + "}\n";
+	assertEquals( renderer.getQuery( classCell ), expectedQuery1 );
 
+	// Reverse direction
         String expectedQuery2 = "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
-                + "PREFIX ns0:<http://exmo.inrialpes.fr/connectors#>\n"
-	    + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
-                + "PREFIX ns1:<http://purl.org/ontology/mo/>\n"
+                + "PREFIX ns1:<http://exmo.inrialpes.fr/connectors#>\n"
+	        + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
+                + "PREFIX ns0:<http://purl.org/ontology/mo/>\n"
                 + "CONSTRUCT {\n"
-                + "?s rdf:type ns0:RootElement .\n"
+                + "?s rdf:type ns0:MusicalWork .\n"
                 + "}\n"
                 + "WHERE {\n"
-                + "?s rdf:type ns1:MusicalWork .\n"
+                + "?s rdf:type ns1:RootElement .\n"
                 + "}\n";
-
-	// JE2015-Tosee
-	assertEquals( renderer.getQuery( classCell ), expectedQuery2 );
-        //assertEquals(renderer.getQueryFromOnto1ToOnto2(classCell), expectedQuery1);
-        //assertEquals(renderer.getQueryFromOnto2ToOnto1(classCell), expectedQuery2);
+        EDOALAlignment inval = new EDOALAlignment();
+        EDOALCell classCell2 = classCell.inverse();
+        inval.addAlignCell(classCell2);
+        renderer = new SPARQLConstructRendererVisitor(writer);
+        renderer.init(properties);
+        inval.render(renderer);
+	assertEquals( renderer.getQuery( classCell2 ), expectedQuery2 );
     }
 
     @Test(groups = {"full", "impl", "raw"})
@@ -236,42 +248,44 @@ public class SPARQLConstructVisitorTest {
         renderer.init(properties);
         alignment.render(renderer);
         assertEquals(alignment.nbCells(), 1);
-        Enumeration<Cell> cells = alignment.getElements();
-        Cell cell = cells.nextElement();
+        Cell cell = alignment.getElements().nextElement();
 
         String expectedQuery1 = "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
                 + "PREFIX ns1:<http://purl.org/NET/c4dm/keys.owl#>\n"
                 + "PREFIX ns0:<http://exmo.inrialpes.fr/connectors#>\n"
-	    + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
+	        + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
                 + "PREFIX ns3:<http://www.w3.org/2000/01/rdf-schema#>\n"
                 + "PREFIX ns2:<http://purl.org/ontology/mo/>\n"
                 + "CONSTRUCT {\n"
-                + "_:o3 rdf:type ns1:Key .\n"
-                + "_:o3 ns2:key _:o4 .\n"
-                + "_:o4 ns3:label ?o .\n"
+                + "?s ns0:key ?o .\n"
                 + "}\n"
                 + "WHERE {\n"
-                + "?s ns0:key ?o .\n"
+                + "?o3 rdf:type ns1:Key .\n"
+                + "?o3 ns2:key ?o4 .\n"
+                + "?o4 ns3:label ?o .\n"
                 + "}\n";
+	assertEquals( renderer.getQuery( cell ), expectedQuery1 );
 
+	// Reverse direction
         String expectedQuery2 = "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>\n"
-                + "PREFIX ns1:<http://purl.org/NET/c4dm/keys.owl#>\n"
-                + "PREFIX ns0:<http://exmo.inrialpes.fr/connectors#>\n"
-	    + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
-                + "PREFIX ns3:<http://www.w3.org/2000/01/rdf-schema#>\n"
-                + "PREFIX ns2:<http://purl.org/ontology/mo/>\n"
+                + "PREFIX ns0:<http://purl.org/NET/c4dm/keys.owl#>\n"
+                + "PREFIX ns3:<http://exmo.inrialpes.fr/connectors#>\n"
+	        + "PREFIX xsd:<http://www.w3.org/2001/XMLSchema#>\n"
+                + "PREFIX ns2:<http://www.w3.org/2000/01/rdf-schema#>\n"
+                + "PREFIX ns1:<http://purl.org/ontology/mo/>\n"
                 + "CONSTRUCT {\n"
-                + "?s ns0:key ?o .\n"
+                + "_:o3 rdf:type ns0:Key .\n"
+                + "_:o3 ns1:key _:o4 .\n"
+                + "_:o4 ns2:label ?o .\n"
                 + "}\n"
                 + "WHERE {\n"
-                + "?o3 rdf:type ns1:Key .\n"
-                + "?o3 ns2:key ?o4 .\n"
-                + "?o4 ns3:label ?o .\n"
+                + "?s ns3:key ?o .\n"
                 + "}\n";
-	// JE2015-Tosee
-	assertEquals( renderer.getQuery( cell ), expectedQuery2 );
-        //assertEquals(renderer.getQueryFromOnto1ToOnto2(cell), expectedQuery1, "FOR alignment file " + alignmentFileName);
-        //assertEquals(renderer.getQueryFromOnto2ToOnto1(cell), expectedQuery2, "FOR alignment file " + alignmentFileName);
+        EDOALAlignment inval = alignment.inverse();
+        renderer = new SPARQLConstructRendererVisitor(writer);
+        renderer.init(properties);
+        inval.render(renderer);
+	assertEquals( renderer.getQuery( inval.getElements().nextElement() ), expectedQuery2 );
     }
 
 //    @Test(groups = {"full", "impl", "raw"})
diff --git a/test/src/SPARQLSelectRendererVisitorTest.java b/test/src/SPARQLLinkkerRendererVisitorTest.java
similarity index 99%
rename from test/src/SPARQLSelectRendererVisitorTest.java
rename to test/src/SPARQLLinkkerRendererVisitorTest.java
index a2b753df..45b507ea 100644
--- a/test/src/SPARQLSelectRendererVisitorTest.java
+++ b/test/src/SPARQLLinkkerRendererVisitorTest.java
@@ -50,7 +50,7 @@ import org.testng.annotations.Test;
  * JE: The same test could be made with the construct link.
  */
 
-public class SPARQLSelectRendererVisitorTest {
+public class SPARQLLinkkerRendererVisitorTest {
 
     // JE2015-Tosee
     // This is a test which has no sense, because there is no linkkey
-- 
GitLab