[dna-commits] DNA SVN: r1293 - in trunk/dna-graph/src: test/java/org/jboss/dna/graph/query/parse and 1 other directory.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Thu Oct 15 15:55:58 EDT 2009


Author: rhauch
Date: 2009-10-15 15:55:58 -0400 (Thu, 15 Oct 2009)
New Revision: 1293

Modified:
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/parse/SqlQueryParser.java
   trunk/dna-graph/src/test/java/org/jboss/dna/graph/query/parse/SqlQueryParserTest.java
Log:
DNA-467 Add search/query support to the graph API

Updated test cases for SqlQueryParser.

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/parse/SqlQueryParser.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/parse/SqlQueryParser.java	2009-10-15 19:55:26 UTC (rev 1292)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/parse/SqlQueryParser.java	2009-10-15 19:55:58 UTC (rev 1293)
@@ -446,9 +446,9 @@
         return constraint;
     }
 
-    protected Collection<StaticOperand> parseInClause( TokenStream tokens,
-                                                       ExecutionContext context ) {
-        Collection<StaticOperand> result = new ArrayList<StaticOperand>();
+    protected List<StaticOperand> parseInClause( TokenStream tokens,
+                                                 ExecutionContext context ) {
+        List<StaticOperand> result = new ArrayList<StaticOperand>();
         tokens.consume("IN");
         tokens.consume("(");
         if (!tokens.canConsume(")")) {

Modified: trunk/dna-graph/src/test/java/org/jboss/dna/graph/query/parse/SqlQueryParserTest.java
===================================================================
--- trunk/dna-graph/src/test/java/org/jboss/dna/graph/query/parse/SqlQueryParserTest.java	2009-10-15 19:55:26 UTC (rev 1292)
+++ trunk/dna-graph/src/test/java/org/jboss/dna/graph/query/parse/SqlQueryParserTest.java	2009-10-15 19:55:58 UTC (rev 1293)
@@ -622,6 +622,58 @@
     }
 
     // ----------------------------------------------------------------------------------------------------------------
+    // parseInClause
+    // ----------------------------------------------------------------------------------------------------------------
+
+    @Test
+    public void shouldParseInClauseFromStringWithSingleValidLiteral() {
+        List<StaticOperand> result = parser.parseInClause(tokens("IN ('value1')"), context);
+        assertThat(result.size(), is(1));
+        assertThat(result.get(0), is((StaticOperand)literal("value1")));
+    }
+
+    @Test
+    public void shouldParseInClauseFromStringWithTwoValidLiteral() {
+        List<StaticOperand> result = parser.parseInClause(tokens("IN ('value1','value2')"), context);
+        assertThat(result.size(), is(2));
+        assertThat(result.get(0), is((StaticOperand)literal("value1")));
+        assertThat(result.get(1), is((StaticOperand)literal("value2")));
+    }
+
+    @Test
+    public void shouldParseInClauseFromStringWithThreeValidLiteral() {
+        List<StaticOperand> result = parser.parseInClause(tokens("IN ('value1','value2','value3')"), context);
+        assertThat(result.size(), is(3));
+        assertThat(result.get(0), is((StaticOperand)literal("value1")));
+        assertThat(result.get(1), is((StaticOperand)literal("value2")));
+        assertThat(result.get(2), is((StaticOperand)literal("value3")));
+    }
+
+    @Test
+    public void shouldParseInClauseFromStringWithSingleValidLiteralCast() {
+        List<StaticOperand> result = parser.parseInClause(tokens("IN (CAST('value1' AS STRING))"), context);
+        assertThat(result.size(), is(1));
+        assertThat(result.iterator().next(), is((StaticOperand)literal("value1")));
+
+        result = parser.parseInClause(tokens("IN (CAST('3' AS LONG))"), context);
+        assertThat(result.size(), is(1));
+        assertThat(result.iterator().next(), is((StaticOperand)literal(new Long(3))));
+    }
+
+    @Test
+    public void shouldParseInClauseFromStringWithMultipleValidLiteralCasts() {
+        List<StaticOperand> result = parser.parseInClause(tokens("IN (CAST('value1' AS STRING),CAST('3' AS LONG),'4')"), context);
+        assertThat(result.size(), is(3));
+        assertThat(result.get(0), is((StaticOperand)literal("value1")));
+        assertThat(result.get(1), is((StaticOperand)literal(new Long(3))));
+        assertThat(result.get(2), is((StaticOperand)literal("4")));
+    }
+
+    protected Literal literal( Object literalValue ) {
+        return new Literal(literalValue);
+    }
+
+    // ----------------------------------------------------------------------------------------------------------------
     // parseFullTextSearchExpression
     // ----------------------------------------------------------------------------------------------------------------
 



More information about the dna-commits mailing list