# ignite-437: assertRsEquals() was done more simpler

Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/cabe9474
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/cabe9474
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/cabe9474

Branch: refs/heads/sprint-3
Commit: cabe947410acf00e15758d9aec55b76f5dc75dac
Parents: cdf934b
Author: Artem Shutak <ashu...@gridgain.com>
Authored: Thu Mar 19 17:31:30 2015 +0300
Committer: Artem Shutak <ashu...@gridgain.com>
Committed: Thu Mar 19 17:31:30 2015 +0300

----------------------------------------------------------------------
 .../query/h2/sql/IgniteVsH2QueryTest.java       | 130 ++++++++++---------
 1 file changed, 66 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/cabe9474/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/IgniteVsH2QueryTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/IgniteVsH2QueryTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/IgniteVsH2QueryTest.java
index 27f5d24..6f27088 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/IgniteVsH2QueryTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/sql/IgniteVsH2QueryTest.java
@@ -43,10 +43,7 @@ import static 
org.apache.ignite.cache.CacheDistributionMode.*;
 public class IgniteVsH2QueryTest extends GridCommonAbstractTest {
     /** */
     private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
-
-    /** */
-    private static Ignite ignite;
-
+    
     /** Partitioned cache. */
     private static IgniteCache pCache;
 
@@ -114,7 +111,7 @@ public class IgniteVsH2QueryTest extends 
GridCommonAbstractTest {
     @Override protected void beforeTestsStarted() throws Exception {
         super.beforeTestsStarted();
 
-        ignite = startGrids(4);
+        Ignite ignite = startGrids(4);
 
         pCache = ignite.jcache("partitioned");
         
@@ -249,25 +246,25 @@ public class IgniteVsH2QueryTest extends 
GridCommonAbstractTest {
         Statement st = conn.createStatement();
         
         st.execute("create table if not exists ORGANIZATION" +
-            "  (id number unique," +
+            "  (id int unique," +
             "  name varchar(255))");
         
         st.execute("create table if not exists PERSON" +
-            "  (id number unique, " +
+            "  (id int unique, " +
             "  firstName varchar(255), " +
             "  lastName varchar(255)," +
-            "  orgId number not null," +
-            "  salary decimal )");
+            "  orgId int not null," +
+            "  salary double )");
 
         st.execute("create table if not exists PRODUCT" +
-            "  (id number unique, " +
+            "  (id int unique, " +
             "  name varchar(255), " +
-            "  price number)");
+            "  price int)");
 
         st.execute("create table if not exists PURCHASE" +
-            "  (id number unique, " +
-            "  personId varchar(255), " +
-            "  productId number)");
+            "  (id int unique, " +
+            "  personId int, " +
+            "  productId int)");
 
         conn.commit();
     }
@@ -304,72 +301,69 @@ public class IgniteVsH2QueryTest extends 
GridCommonAbstractTest {
     private void test0(IgniteCache cache, String sql, Object[] args, Order 
order) throws SQLException {
         log.info("Sql=" + sql + ", args=" + Arrays.toString(args));
 
-        ResultSet h2Rs = null;
-        PreparedStatement st = null;
+        List<List<?>> h2Res = executeH2Query(sql, args);
 
-        try {
-            st = conn.prepareStatement(sql);
+        List<List<?>> cacheRes = cache.queryFields(new 
SqlFieldsQuery(sql).setArgs(args)).getAll();
 
+        assertRsEquals(h2Res, cacheRes, order);
+    }
+    
+    private List<List<?>> executeH2Query(String sql, Object[] args) throws 
SQLException {
+        List<List<?>> res = new ArrayList<>();
+        ResultSet rs = null;
+
+        try(PreparedStatement st = conn.prepareStatement(sql)) {
             for (int idx = 0; idx < args.length; idx++) {
                 Object arg = args[idx];
 
                 fillArgByType(st, idx + 1, arg);
             }
 
-            h2Rs = st.executeQuery();
+            rs = st.executeQuery();
 
-            List<List<?>> cacheRes = cache.queryFields(new 
SqlFieldsQuery(sql).setArgs(args)).getAll();
+            int colCnt = rs.getMetaData().getColumnCount();
 
-            assertRsEquals(h2Rs, cacheRes, order);
+            while (rs.next()) {
+                List<Object> row = new ArrayList<>(colCnt);
+                
+                for (int i = 1; i <= colCnt; i++)
+                    row.add(rs.getObject(i));
+                
+                res.add(row);
+            }
         }
         finally {
-            U.closeQuiet(st);
-            U.closeQuiet(h2Rs);
+            U.closeQuiet(rs);
         }
-    }
-
-    private void assertRsEquals(ResultSet rs, List<List<?>> actualRs, Order 
order) throws SQLException {
-        if (!rs.next()) {
-            assertTrue("Actual result set have to be empty.", 
actualRs.isEmpty());
-
-            return;
-        }
-
-        assertTrue("Actual result set cannot be empty.", !actualRs.isEmpty());
-
-        assertEquals("Column count have to be equal.", 
rs.getMetaData().getColumnCount(), actualRs.get(0).size());
-
-        int rsRowsCnt = 0;
-
-        do {
-            if (order == Order.ORDERED) {
-                assertTrue("Current rows counter have to be less than size of 
actual rs.", rsRowsCnt < actualRs.size());
 
-                List<?> row = actualRs.get(rsRowsCnt);
-
-                boolean rowsAreEqual = rowEqualsCurrentRsRow(rs, row);
+        return res;
+    }
 
-                assertTrue("Rows " + currentRsRow2String(rs) + " and " + row + 
" have to be equal.",
-                    rowsAreEqual);
-            }
-            else {
-                boolean currRowIsFound = false;
+    private void assertRsEquals(List<List<?>> rs1, List<List<?>> rs2, Order 
order) {
+        assertEquals("Rows count has to be equal.", rs1.size(), rs2.size());
+        
+        switch (order){
+            case ORDERED:
+                for (int rowNum = 0; rowNum < rs1.size(); rowNum++) {
+                    List<?> row1 = rs1.get(rowNum);
+                    List<?> row2 = rs2.get(rowNum);
 
-                for (List<?> row : actualRs) {
-                    if (rowEqualsCurrentRsRow(rs, row)) {
-                        currRowIsFound = true;
+                    assertEquals("Columns count have to be equal.", 
row1.size(), row2.size());
 
-                        break;
-                    }
+                    for (int colNum = 0; colNum < row1.size(); colNum++)
+                        assertEquals("Row=" + rowNum + ", column=" + colNum, 
row1.get(colNum), row2.get(colNum));
                 }
 
-                assertTrue("A row " + currentRsRow2String(rs) + " not found at 
" + actualRs + '.', currRowIsFound);
-            }
-
-            rsRowsCnt++;
-        } while (rs.next());
-
-        assertEquals("Count of results.", rsRowsCnt, actualRs.size());
+                break;
+            case RANDOM:
+                for (List<?> row1 : rs1)
+                    assertTrue("Actual result set has to contain row.\n" + 
"Result set=" + rs2 + "\n" + "Row=" + row1, 
+                        rs2.contains(row1));
+                
+                break;
+            default: 
+                throw new IllegalStateException();
+        }
     }
 
     private static String currentRsRow2String(ResultSet rs) throws 
SQLException {
@@ -520,8 +514,10 @@ public class IgniteVsH2QueryTest extends 
GridCommonAbstractTest {
      */
     public void testOrdered() throws Exception {
         test0Ordered("select firstName, lastName" +
-            "  from Person" +
-            "  order by lastName, firstName");
+            "  from Person" 
+//                +
+//            "  order by lastName, firstName"
+        );
     }
 
     /**
@@ -544,6 +540,13 @@ public class IgniteVsH2QueryTest extends 
GridCommonAbstractTest {
     /**
      * @throws Exception If failed.
      */
+    public void testSimpleReplicatedSelect() throws Exception {
+        test0(rCache, "select id, name from \"replicated\".Product");
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
     public void testCrossCache() throws Exception {
         //TODO Investigate (should be 20 results instead of 8)
         test0("select firstName, lastName" +
@@ -738,7 +741,6 @@ public class IgniteVsH2QueryTest extends 
GridCommonAbstractTest {
             return key;
         }
 
-
         /** {@inheritDoc} */
         @Override public String toString() {
             return "Purchase [id=" + id + ", productId=" + productId + ", 
personId=" + personId + ']';

Reply via email to