Author: [email protected]
Date: Fri Jan 20 08:55:26 2012
New Revision: 1950

Log:
[AMDATUCASSANDRA-144] Enhanced unit test to verify return order of 
getSuperColumns

Modified:
   
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/test/java/org/amdatu/cassandra/persistencemanager/hector/PersistenceManagerTest.java

Modified: 
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/test/java/org/amdatu/cassandra/persistencemanager/hector/PersistenceManagerTest.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/test/java/org/amdatu/cassandra/persistencemanager/hector/PersistenceManagerTest.java
 (original)
+++ 
trunk/amdatu-cassandra/cassandra-persistencemanager-hector/src/test/java/org/amdatu/cassandra/persistencemanager/hector/PersistenceManagerTest.java
 Fri Jan 20 08:55:26 2012
@@ -39,7 +39,8 @@
     private static final String TEST_STANDARD_CF = 
"PMUnitTestStandardColumnFamily";
     private static final String TEST_SUPERCOLUMN = "PMUnitTestSuperColumn";
     private static final String TEST_COLUMN = "PMUnitTestColumn";
-    private static final int NR_TEST_ROWS = 105;
+    private static final int NR_TEST_ROWS = 105;
+    private static final int NR_TEST_COLUMNS = 20;
 
     @BeforeClass
     public static void setup() throws Exception {
@@ -71,7 +72,10 @@
         // Test object types in Hector
         testValueTypes(TEST_SUPER_CF, true);
         testValueTypes(TEST_STANDARD_CF, false);
-
+
+        // Test sort order of super columns
+        testSortOrder(TEST_SUPER_CF);
+        
         LOG.info("Unit tests finished");
     }
 
@@ -239,7 +243,28 @@
         // in these rows.
         Assert.assertEquals(NR_TEST_ROWS-10, m_hectorPM.getRowKeys(cf).size());
     }
-
+
+    private void testSortOrder(final String scf) throws 
UnsupportedEncodingException {
+        // Step 1 - Insert 20 test super columns
+        String rowKey = "sort_order_row";
+        for (int i = 1; i <= NR_TEST_COLUMNS; i++) {
+            String col = "col_" + i;
+            byte[] value = ("value_" + i).getBytes("UTF-8");
+            m_hectorPM.setValue(scf, rowKey, col, TEST_COLUMN, value);
+        }
+        
+        // Step 2 - Retrieve and verify the sort order
+        List<HSuperColumn<String, String, String>> superColumns1 = 
m_hectorPM.getSuperColumns(scf, rowKey, String.class);
+        List<HSuperColumn<String, String, String>> superColumns2 = 
m_hectorPM.getSuperColumns(scf, rowKey, String.class);
+        int i=0;
+        for (HSuperColumn<String, String, String> superCol1 : superColumns1) {
+            if (!superCol1.getName().equals(superColumns2.get(i).getName())) {
+                Assert.fail("Ordering of super columns varies per query.");
+            }
+            i++;
+        }
+    }
+    
     private void assertEqual(final byte[] ba1, final byte[] ba2) {
         if (ba1 == null && ba2 == null) {
             return;
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to