[Mulgara-svn] r1228 - trunk/src/jar/querylang/java/org/mulgara/protocol

pag at mulgara.org pag at mulgara.org
Thu Sep 4 06:22:02 UTC 2008


Author: pag
Date: 2008-09-03 23:22:00 -0700 (Wed, 03 Sep 2008)
New Revision: 1228

Modified:
   trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedSparqlJSONAnswer.java
   trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedSparqlJSONAnswerUnitTest.java
Log:
JSON results tested

Modified: trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedSparqlJSONAnswer.java
===================================================================
--- trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedSparqlJSONAnswer.java	2008-09-03 22:07:00 UTC (rev 1227)
+++ trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedSparqlJSONAnswer.java	2008-09-04 06:22:00 UTC (rev 1228)
@@ -109,7 +109,8 @@
       if (wroteVars) s.append(", ");
       s.append("\"link\": [\"").append(additionalMetadata.toString()).append("\"]");
     }
-    s.append("}, ");
+    s.append("}");
+    prependComma = true;
   }
 
   /** {@inheritDoc} */
@@ -171,7 +172,7 @@
       s.append("\"type\": \"typed-literal\", \"datatype\": \"").append(literal.getDatatype().toString()).append("\", ");
     } else {
       s.append("\"type\": \"literal\", ");
-      if (literal.getLanguage() != null) s.append(" \"xml:lang\": \"").append(literal.getLanguage()).append("\", ");
+      if (literal.getLanguage() != null) s.append("\"xml:lang\": \"").append(literal.getLanguage()).append("\", ");
     }
     s.append("\"value\": \"").append(literal.getLexicalForm()).append("\"");
   }

Modified: trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedSparqlJSONAnswerUnitTest.java
===================================================================
--- trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedSparqlJSONAnswerUnitTest.java	2008-09-03 22:07:00 UTC (rev 1227)
+++ trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedSparqlJSONAnswerUnitTest.java	2008-09-04 06:22:00 UTC (rev 1228)
@@ -20,9 +20,7 @@
 import java.io.ByteArrayOutputStream;
 import java.net.URI;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 // Locally written packages
 import org.mulgara.query.AnswerImpl;
@@ -82,15 +80,10 @@
    */
   public static Test suite() {
     TestSuite suite = new TestSuite();
-    // TODO: tests not yet written
-//    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testEmptyConstructor"));
-//    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testEmptyConstructorPretty"));
-//    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testBooleanAnswer"));
-//    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testBooleanAnswerPretty"));
-//    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testPrettyPrint"));
-//    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testCompactPrint"));
-//    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testPrettyPrintVariations"));
-//    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testCompactPrintVariations"));
+    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testEmptyConstructor"));
+    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testBooleanAnswer"));
+    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testCompactPrint"));
+    suite.addTest(new StreamedSparqlJSONAnswerUnitTest("testCompactPrintVariations"));
     return suite;
   }
 
@@ -115,21 +108,6 @@
 
 
   /**
-   * Tests an empty answer.
-   * @throws Exception On error
-   */
-  public void testEmptyConstructorPretty() throws Exception {
-    StreamedSparqlJSONAnswer a = new StreamedSparqlJSONAnswer(empty, output);
-    a.emit();
-    assertEquals(getEmptyP(), output.toString());
-
-    output.reset();
-    a.emit();
-    assertEquals(getEmpty(), output.toString());
-  }
-
-
-  /**
    * Tests a boolean answer.
    * @throws Exception On error
    */
@@ -146,32 +124,8 @@
 
 
   /**
-   * Tests a boolean answer.
-   * @throws Exception On error
-   */
-  public void testBooleanAnswerPretty() throws Exception {
-    StreamedSparqlJSONAnswer a = new StreamedSparqlJSONAnswer(true, output);
-    a.emit();
-    assertEquals(getTrueP(), output.toString());
-    output.reset();
-    a.emit();
-    assertEquals(getTrue(), output.toString());
-  }
-
-
-  /**
    * Test main structure.
    */
-  public void testPrettyPrint() throws Exception {
-    StreamedSparqlJSONAnswer a = new StreamedSparqlJSONAnswer(answer, output);
-    a.emit();
-    assertEquals(getAnswerP(), output.toString());
-  }
-
-
-  /**
-   * Test main structure.
-   */
   public void testCompactPrint() throws Exception {
     StreamedSparqlJSONAnswer a = new StreamedSparqlJSONAnswer(answer, output);
     a.emit();
@@ -188,220 +142,33 @@
     StreamedSparqlJSONAnswer b = new StreamedSparqlJSONAnswer(true, REL_URI, outputb);
     StreamedSparqlJSONAnswer a = new StreamedSparqlJSONAnswer(answer, REL_URI, outputa);
 
-    // No namespaces, no schema, meta set
+    // meta set
     e.emit();
     b.emit();
     a.emit();
-    assertEquals(getEmpty(false, true), output.toString());
-    assertEquals(getTrue(false, true), outputb.toString());
-    assertEquals(getAnswer(false, true), outputa.toString());
+    assertEquals(getEmpty(true), output.toString());
+    assertEquals(getTrue(true), outputb.toString());
+    assertEquals(getAnswer(true), outputa.toString());
 
-    // No namespaces, schema set, meta set
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmpty(true, true), output.toString());
-    assertEquals(getTrue(true, true), outputb.toString());
-    assertEquals(getAnswer(true, true), outputa.toString());
-
-    // Namespaces set, schema set, meta set
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmpty(true, true), output.toString());
-    assertEquals(getTrue(true, true), outputb.toString());
-    assertEquals(getAnswer(true, true), outputa.toString());
-
-    // Namespaces set, no schema, meta set
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmpty(false, true), output.toString());
-    assertEquals(getTrue(false, true), outputb.toString());
-    assertEquals(getAnswer(false, true), outputa.toString());
-    
     e = new StreamedSparqlJSONAnswer(empty, output);
     b = new StreamedSparqlJSONAnswer(true, outputb);
     a = new StreamedSparqlJSONAnswer(answer, outputa);
 
-    // No namespaces, schema set, no meta
+    // no meta
     output.reset();
     outputb.reset();
     outputa.reset();
     e.emit();
     b.emit();
     a.emit();
-    assertEquals(getEmpty(true, false), output.toString());
-    assertEquals(getTrue(true, false), outputb.toString());
-    assertEquals(getAnswer(true, false), outputa.toString());
+    assertEquals(getEmpty(false), output.toString());
+    assertEquals(getTrue(false), outputb.toString());
+    assertEquals(getAnswer(false), outputa.toString());
 
-    // Namespaces set, schema set, no meta
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmpty(true, false), output.toString());
-    assertEquals(getTrue(true, false), outputb.toString());
-    assertEquals(getAnswer(true, false), outputa.toString());
-
-    // Namespaces set, no schema, no meta
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmpty(false, false), output.toString());
-    assertEquals(getTrue(false, false), outputb.toString());
-    assertEquals(getAnswer(false, false), outputa.toString());
-
-    // No Namespaces, no schema, no meta
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmpty(false, false), output.toString());
-    assertEquals(getTrue(false, false), outputb.toString());
-    assertEquals(getAnswer(false, false), outputa.toString());
-
-    // No namespaces, schema set, no meta
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmpty(true, false), output.toString());
-    assertEquals(getTrue(true, false), outputb.toString());
-    assertEquals(getAnswer(true, false), outputa.toString());
   }
 
 
   /**
-   * Tests the variations of answers.
-   * @throws Exception On error
-   */
-  public void testPrettyPrintVariations() throws Exception {
-    StreamedSparqlJSONAnswer e = new StreamedSparqlJSONAnswer(empty, REL_URI, output);
-    StreamedSparqlJSONAnswer b = new StreamedSparqlJSONAnswer(true, REL_URI, outputb);
-    StreamedSparqlJSONAnswer a = new StreamedSparqlJSONAnswer(answer, REL_URI, outputa);
-
-    // No namespaces, no schema, meta set
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmptyP(false, true), output.toString());
-    assertEquals(getTrueP(false, true), outputb.toString());
-    assertEquals(getAnswerP(false, true), outputa.toString());
-
-    // No namespaces, schema set, meta set
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmptyP(true, true), output.toString());
-    assertEquals(getTrueP(true, true), outputb.toString());
-    assertEquals(getAnswerP(true, true), outputa.toString());
-
-    // Namespaces set, schema set, meta set
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmptyP(true, true), output.toString());
-    assertEquals(getTrueP(true, true), outputb.toString());
-    assertEquals(getAnswerP(true, true), outputa.toString());
-
-    // Namespaces set, no schema, meta set
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmptyP(false, true), output.toString());
-    assertEquals(getTrueP(false, true), outputb.toString());
-    assertEquals(getAnswerP(false, true), outputa.toString());
-    
-    e = new StreamedSparqlJSONAnswer(empty, output);
-    b = new StreamedSparqlJSONAnswer(true, outputb);
-    a = new StreamedSparqlJSONAnswer(answer, outputa);
-
-    // No namespaces, schema set, no meta
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmptyP(true, false), output.toString());
-    assertEquals(getTrueP(true, false), outputb.toString());
-    assertEquals(getAnswerP(true, false), outputa.toString());
-
-    // Namespaces set, schema set, no meta
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmptyP(true, false), output.toString());
-    assertEquals(getTrueP(true, false), outputb.toString());
-    assertEquals(getAnswerP(true, false), outputa.toString());
-
-    // Namespaces set, no schema, no meta
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmptyP(false, false), output.toString());
-    assertEquals(getTrueP(false, false), outputb.toString());
-    assertEquals(getAnswerP(false, false), outputa.toString());
-
-    // No Namespaces, no schema, no meta
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmptyP(false, false), output.toString());
-    assertEquals(getTrueP(false, false), outputb.toString());
-    assertEquals(getAnswerP(false, false), outputa.toString());
-
-    // No namespaces, schema set, no meta
-    output.reset();
-    outputb.reset();
-    outputa.reset();
-    e.emit();
-    b.emit();
-    a.emit();
-    assertEquals(getEmptyP(true, false), output.toString());
-    assertEquals(getTrueP(true, false), outputb.toString());
-    assertEquals(getAnswerP(true, false), outputa.toString());
-  }
-
-
-  /**
    * Populate the test answer.
    * @throws Exception Error setting up the ResultSet
    */
@@ -439,154 +206,74 @@
   /////////////////////////////
 
   private static String getEmpty() {
-    return getEmpty(false, false);
+    return getEmpty(false);
   }
 
-  private static String getEmptyP() {
-    return getEmptyP(false, false);
+  private static String getEmpty(boolean meta) {
+    return getCommonStart(meta) + EMPTY_BODY;
   }
 
-  private static String getEmpty(boolean schema, boolean meta) {
-    return getCommonStart(schema, meta) + EMPTY_BODY;
-  }
-
-  private static String getEmptyP(boolean schema, boolean meta) {
-    return getCommonStartP(schema, meta) + EMPTY_BODY_P;
-  }
-
   ////////////////////////////
   // start of getTrue variants
   ////////////////////////////
 
   private static String getTrue() {
-    return getTrue(false, false);
+    return getTrue(false);
   }
 
-  private static String getTrueP() {
-    return getTrueP(false, false);
+  private static String getTrue(boolean meta) {
+    return getCommonStart(meta) + TRUE_BODY;
   }
 
-  private static String getTrue(boolean schema, boolean meta) {
-    return getCommonStart(schema, meta) + TRUE_BODY;
-  }
-
-  private static String getTrueP(boolean schema, boolean meta) {
-    return getCommonStartP(schema, meta) + TRUE_BODY_P;
-  }
-
   //////////////////////////////
   // start of getAnswer variants
   //////////////////////////////
 
   private static String getAnswer() {
-    return getAnswer(false, false);
+    return getAnswer(false);
   }
 
-  private static String getAnswerP() {
-    return getAnswerP(false, false);
+  private static String getAnswer(boolean meta) {
+    String result = getShortCommonStart() + ANSWER_VARS;
+    if (meta) result += ", ";
+    return result + getMeta(meta) + ANSWER_BODY;
   }
 
-  private static String getAnswer(boolean schema, boolean meta) {
-    return getShortCommonStart(schema) + ANSWER_VARS + getMeta(meta) + ANSWER_BODY;
-  }
-
-  private static String getAnswerP(boolean schema, boolean meta) {
-    return getShortCommonStartP(schema) + ANSWER_VARS_P + getMetaP(meta) + ANSWER_BODY_P;
-  }
-
   ////////////////
   // common header
   ////////////////
 
-  private static String getCommonStart(boolean schema, boolean meta) {
-    return getShortCommonStart(schema) + getMeta(meta);
+  private static String getCommonStart(boolean meta) {
+    return getShortCommonStart() + getMeta(meta);
   }
 
-  private static String getCommonStartP(boolean schema, boolean meta) {
-    return getShortCommonStartP(schema) + getMetaP(meta);
-  }
-
-  private static String getShortCommonStart(boolean schema) {
+  private static String getShortCommonStart() {
     String result = DOC_HEAD + SPARQL_HEAD;
-    if (schema) result += " " + SPARQL_HEAD_ATTR;
-    result += ">" + EMPTY_HEAD;
     return result;
   }
 
-  private static String getShortCommonStartP(boolean schema) {
-    String result = DOC_HEAD + SPARQL_HEAD;
-    if (schema) result += "\n" + SPARQL_HEAD_INDENT + SPARQL_HEAD_ATTR;
-    result += ">\n  " + EMPTY_HEAD + "\n";
-    return result;
-  }
-
   private static String getMeta(boolean meta) {
     return meta ? HEAD_META : "";
   }
 
-  private static String getMetaP(boolean meta) {
-    return meta ? HEAD_META_INDENT + HEAD_META + "\n" : "";
-  }
+  static final String DOC_HEAD = "{ ";
 
-  static final String DOC_HEAD = "<?xml version=\"1.0\"?>\n";
+  static final String SPARQL_HEAD = "\"head\": {";
 
-  static final String SPARQL_HEAD = "<sparql xmlns=\"http://www.w3.org/2005/sparql-results#\"";
+  static final String HEAD_META = "\"link\": [\"" + REL_URI + "\"]";
 
-  static final String SPARQL_HEAD_ATTR = "xsi:schemaLocation=\"http://www.w3.org/2007/SPARQL/result.xsd\"";
+  static final String EMPTY_BODY = "}, \"results\": { \"bindings\": [  ] } }";
 
-  static final String SPARQL_HEAD_INDENT = "        ";
-  
-  static final String HEAD_META = "<link href=\"" + REL_URI + "\"/>";
+  static final String TRUE_BODY = "}, \"boolean\": true }";
 
-  static final String HEAD_META_INDENT = "    ";
+  static final String ANSWER_VARS = "\"vars\": [\"x\", \"y\"]";
 
-  static final String EMPTY_HEAD = "<head>";
-
-  static final String EMPTY_BODY = "</head><results></results></sparql>";
-
-  static final String EMPTY_BODY_P = "  </head>\n" +
-      "  <results>\n" +
-      "  </results>\n" +
-      "</sparql>";
-
-  static final String TRUE_BODY = "</head><boolean>true</boolean></sparql>";
-
-  static final String TRUE_BODY_P = "  </head>\n" +
-      "  <boolean>true</boolean>\n" +
-      "</sparql>";
-
-  static final String ANSWER_VARS = "<variable name=\"x\"/><variable name=\"y\"/>";
-
-  static final String ANSWER_BODY = "</head>" +
-      "<results>" +
-      "<result><binding name=\"x\"><literal>X1</literal></binding>" +
-      "<binding name=\"y\"><uri>urn:y1</uri></binding></result>" +
-      "<result><binding name=\"x\"><literal xml:lang=\"en\">X2</literal></binding>" +
-      "<binding name=\"y\"><bnode>_node42</bnode></binding></result>" +
-      "</results>" +
-      "</sparql>";
-
-  static final String ANSWER_VARS_P = "    <variable name=\"x\"/>\n" +
-      "    <variable name=\"y\"/>\n";
-
-  static final String ANSWER_BODY_P = "  </head>\n" +
-      "  <results>\n" +
-      "    <result>\n" +
-      "      <binding name=\"x\">\n" +
-      "        <literal>X1</literal>\n" +
-      "      </binding>\n" +
-      "      <binding name=\"y\">\n" +
-      "        <uri>urn:y1</uri>\n" +
-      "      </binding>\n" +
-      "    </result>\n" +
-      "    <result>\n" +
-      "      <binding name=\"x\">\n" +
-      "        <literal xml:lang=\"en\">X2</literal>\n" +
-      "      </binding>\n" +
-      "      <binding name=\"y\">\n" +
-      "        <bnode>_node42</bnode>\n" +
-      "      </binding>\n" +
-      "    </result>\n" +
-      "  </results>\n" +
-      "</sparql>";
+  static final String ANSWER_BODY = "}, " +
+      "\"results\": { " +
+      "\"bindings\": [ " +
+      "{ \"x\": { \"type\": \"literal\", \"value\": \"X1\" }, " +
+      "\"y\": { \"type\": \"uri\", \"value\": \"urn:y1\" } }, " +
+      "{ \"x\": { \"type\": \"literal\", \"xml:lang\": \"en\", \"value\": \"X2\" }, " +
+      "\"y\": { \"type\": \"bnode\", \"value\": \"_node42\" } }" +
+      " ] } }";
 }




More information about the Mulgara-svn mailing list