package me.xhh.hector06; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNull; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import me.xhh.hector06.DBA; import me.xhh.hector06.DBUtil; import me.xhh.hector06.DBA.ColumnFamily; import me.xhh.hector06.DBA.ColumnMap; import me.xhh.hector06.DBA.ColumnName; import me.xhh.hector06.ExampleBaseDBA.DemoDB; import org.apache.cassandra.thrift.Column; import org.apache.cassandra.thrift.ColumnPath; import org.apache.cassandra.thrift.SuperColumn; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class DBATest extends DaoProvider { /** * NOTE: Test this class manually! It has been excluded from the build.xml testing part. */ private DBA dba; /** Column family to test with */ private static final ColumnFamily CF = DemoDB.ExampleColumnFamily; /** Super column family to test with */ private static final ColumnFamily SCF = DemoDB.ExampleSuperColumnFamily; /* ---------------- Example Keyspace config for testing ---------------- <Keyspace Name="Keyspace1"> <ColumnFamily Name="ExampleColumnFamily" CompareWith="UTF8Type" /> <ColumnFamily Name="ExampleSuperColumnFamily" ColumnType="Super" CompareWith="LongType" CompareSubcolumnsWith="UTF8Type" /> <ReplicaPlacementStrategy>org.apache.cassandra.locator.RackUnawareStrategy</ReplicaPlacementStrategy> <ReplicationFactor>1</ReplicationFactor> <EndPointSnitch>org.apache.cassandra.locator.EndPointSnitch</EndPointSnitch> </Keyspace> */ enum CN implements ColumnName { column0, column1, column2, column3, column4, column5, column6, column7, column8, column9, column_not_exist, column_not_exist_2 } @BeforeClass public void prepareConnection() throws Exception { dba = prepareDao(DBA.class); } @BeforeMethod public void setUp() { // prepare data for testing List<String> keys = new ArrayList<String>(10); List<Column> columns = new ArrayList<Column>(10); // List<SuperColumn> superCols = new ArrayList<SuperColumn>(10); List<SuperColumn> superColsTypeLong = new ArrayList<SuperColumn>(10); for (int i = 0; i < 10; i++) { keys.add("key" + i); columns.add(DBUtil.createColumn("column" + i, "value" + i)); } for (int i = 0; i < 10; i++) { // superCols.add( DBUtil.superColumn( "super" + i, columns ) ); superColsTypeLong.add(DBUtil.createSuperColumn(new Long(i), columns)); } Map<String, List<Column>> colMap = new HashMap<String, List<Column>>(1); colMap.put(CF.toString(), columns); Map<String, List<SuperColumn>> superColMap = new HashMap<String, List<SuperColumn>>(1); superColMap.put(SCF.toString(), superColsTypeLong); for (String key : keys) { dba.insertColumns(CF, key, columns); dba.insertColumnsOrSuperColumns(SCF, key, null, superColsTypeLong); } } @Override protected ColumnFamily[] getColumnFamilies() { return new ColumnFamily[]{CF, SCF}; } @Test public void testCreateColumnPath() { ColumnPath cp = dba.createColumnPath(CF, null, "column-name"); assertEquals(cp.getColumn_family(), CF.toString()); assertNull(cp.getSuper_column()); assertEquals(DBUtil.string(cp.getColumn()), "column-name"); cp = dba.createColumnPath(SCF, "super-name", "column-name"); assertEquals(cp.getColumn_family(), SCF.toString()); assertEquals(DBUtil.string(cp.getSuper_column()), "super-name"); assertEquals(DBUtil.string(cp.getColumn()), "column-name"); cp = dba.createColumnPath(SCF, 123l, "column-name"); assertEquals(cp.getColumn_family(), SCF.toString()); assertEquals(DBUtil.longFromBytes(cp.getSuper_column()).longValue(), 123l); assertEquals(DBUtil.string(cp.getColumn()), "column-name"); } @Test public void test_insertValue_ColumnFamily() { String key = "test_insert_1"; dba.insertValue(CF, key, "first_name", "first_name_1"); dba.insertValue(CF, key, "last_name", "last_name_1"); assertEquals(dba.getValue(CF, key, "first_name"), "first_name_1"); assertEquals(dba.getValue(CF, key, "last_name"), "last_name_1"); assertNull(dba.getValue(CF, key, "not-exist-3j2o38")); dba.insertValue(CF, key, "first_name", "first_name_updated"); assertEquals(dba.getValue(CF, key, "first_name"), "first_name_updated"); } @Test public void test_insertValue_SuperColumnFamily() { String key = "test_insert_2"; dba.insertValue(SCF, key, 123l, "subject", "subject text"); dba.insertValue(SCF, key, 123l, "body", "body text"); assertEquals(dba.getValue(SCF, key, 123l, "subject"), "subject text"); assertEquals(dba.getValue(SCF, key, 123l, "body"), "body text"); assertNull(dba.getValue(SCF, key, 123l, "not-exist-j32jf")); assertNull(dba.getValue(SCF, key, 283492l, "not-exist-j32jf")); dba.insertValue(SCF, key, 123l, "body", "body updated"); assertEquals(dba.getValue(SCF, key, 123l, "body"), "body updated"); } @Test public void test_insertColumns() { final String key = "test_insert_columns"; assertTrue(dba.isKeyEmpty(CF, key)); assertTrue(dba.isKeyEmpty(SCF, key)); List<Column> colList = new ArrayList<Column>(2); colList.add(DBUtil.createColumn("name", "Alice")); colList.add(DBUtil.createColumn("title", "kid")); // Map<String, List<Column>> colMap = new HashMap<String, // List<Column>>(1); // colMap.put( CF.name(), colList ); // Map<String, List<SuperColumn>> superColMap = new HashMap<String, // List<SuperColumn>>(1); List<SuperColumn> superColList = new ArrayList<SuperColumn>(2); superColList.add(new SuperColumn(DBUtil.bytesForName(100l), colList)); superColList.add(new SuperColumn(DBUtil.bytesForName(200l), colList)); // superColMap.put( SCF.name(), superColList ); dba.insertColumns(CF, key, colList); dba.insertColumnsOrSuperColumns(SCF, key, null, superColList); assertFalse(dba.isKeyEmpty(CF, key)); ColumnMap<String> data = dba.getAllColumnsToMap(CF, key); assertEquals(data.size(), 2); assertEquals(data.get("name"), "Alice"); assertEquals(data.get("title"), "kid"); assertFalse(dba.isKeyEmpty(SCF, key)); List<SuperColumn> superCols = dba.getAllSuperColumns(SCF, key); assertEquals(superCols.size(), 2); SuperColumn superCol0 = superCols.get(0); Long superName0 = DBUtil.longFromBytes(superCol0.name); assertTrue(superName0 == 100l || superName0 == 200l); data = DBUtil.columnsToMap(superCol0.getColumns()); assertEquals(data.size(), 2); assertEquals(data.get("name"), "Alice"); assertEquals(data.get("title"), "kid"); } // TODO batch - not implemented yet /* * @Test public void * testInsertColumnsStringMapOfStringListOfColumnMapOfStringListOfSuperColumn * () { fail( "Not yet implemented" ); } * * @Test public void testMutateColumnsMapOfStringMapOfStringListOfMutation() * { fail( "Not yet implemented" ); } * * @Test public void testMutateColumnsBatchMutation() { fail( * "Not yet implemented" ); } */ @Test public void test_getValue() { assertEquals(dba.getValue(CF, "key0", CN.column0), "value0"); assertEquals(dba.getValue(CF, "key0", "column1"), "value1"); assertEquals(dba.getValue(CF, "key1", "column1"), "value1"); assertEquals(dba.getValue(CF, "key1", "column9"), "value9"); assertEquals(dba.getValue(CF, "key9", "column9"), "value9"); assertNull(dba.getValue(CF, "key-not-exist", "column1")); assertNull(dba.getValue(CF, "key1", "column-not-exist")); assertEquals(dba.getValue(SCF, "key0", 0l, CN.column0), "value0"); assertEquals(dba.getValue(SCF, "key1", 1l, "column7"), "value7"); assertEquals(dba.getValue(SCF, "key9", 9l, "column9"), "value9"); assertNull(dba.getValue(SCF, "key-not-exist", 0l, "column1")); assertNull(dba.getValue(SCF, "key0", 10001l, "column1")); assertNull(dba.getValue(SCF, "key1", 9l, "column-not-exist")); super.clearData(); assertNull(dba.getValue(CF, "key0", CN.column0)); assertNull(dba.getValue(CF, "key0", "column1")); assertNull(dba.getValue(CF, "key9", "column9")); } @Test public void test_columnExists() { assertTrue(dba.columnExists(CF, "key0", CN.column0)); assertTrue(dba.columnExists(CF, "key5", "column9")); assertTrue(dba.columnExists(CF, "key9", CN.column0)); assertTrue(dba.columnExists(CF, "key9", "column9")); assertFalse(dba.columnExists(CF, "key0", "column-not-exist")); assertFalse(dba.columnExists(CF, "key-not-exist", CN.column0)); assertFalse(dba.columnExists(CF, "test-key", "test-col")); dba.insertValue(CF, "test-key", "test-col", "test-val"); assertTrue(dba.columnExists(CF, "test-key", "test-col")); assertTrue(dba.columnExists(SCF, "key0", 0l, CN.column0)); assertTrue(dba.columnExists(SCF, "key0", 0l, "column5")); assertTrue(dba.columnExists(SCF, "key0", 9l, CN.column0)); assertTrue(dba.columnExists(SCF, "key9", 0l, CN.column0)); assertTrue(dba.columnExists(SCF, "key9", 4l, "column7")); assertFalse(dba.columnExists(SCF, "key9", 4l, "column-not-exist")); assertFalse(dba.columnExists(SCF, "key9", 10001l, "column9")); assertFalse(dba.columnExists(SCF, "key9", 4l, "column-not-exist")); assertFalse(dba.columnExists(SCF, "test-key", 10009l, "test-col")); dba.insertValue(SCF, "test-key", 10009l, "test-col", "test-val"); assertTrue(dba.columnExists(SCF, "test-key", 10009l, "test-col")); } @Test public void test_superColumnExists() { assertTrue(dba.superColumnExists(SCF, "key0", 0l)); assertTrue(dba.superColumnExists(SCF, "key0", 6l)); assertTrue(dba.superColumnExists(SCF, "key9", 0l)); assertFalse(dba.superColumnExists(SCF, "key0", 10001l)); assertFalse(dba.superColumnExists(SCF, "key-not-exist", 0l)); assertFalse(dba.superColumnExists(SCF, "test-key", 10009l)); dba.insertValue(SCF, "test-key", 10009l, "test-col", "test-val"); assertTrue(dba.superColumnExists(SCF, "test-key", 10009l)); dba.deleteColumn(SCF, "test-key", 10009l, "test-col"); assertFalse(dba.superColumnExists(SCF, "test-key", 10009l)); } @Test public void test_getFirstColumn() { Column col = dba.getFirstColumn(CF, "key0"); assertNotNull(col); assertEquals(DBUtil.string(col.name), CN.column0.toString()); assertEquals(DBUtil.string(col.value), "value0"); assertNull(dba.getFirstColumn(CF, "key-not-exist")); col = dba.getFirstColumn(SCF, "key0", 0l); assertNotNull(col); assertEquals(DBUtil.string(col.name), CN.column0.toString()); assertEquals(DBUtil.string(col.value), "value0"); assertNull(dba.getFirstColumn(SCF, "key-not-exist", 0l)); assertNull(dba.getFirstColumn(SCF, "key0", 10001l)); } @Test public void test_getFirstColumnName() { byte[] colName = dba.getFirstColumnName(CF, "key0"); assertEquals(DBUtil.string(colName), CN.column0.toString()); assertNull(dba.getFirstColumnName(CF, "key-not-exist")); colName = dba.getFirstColumnName(SCF, "key0", 0l); assertEquals(DBUtil.string(colName), "column0"); assertNull(dba.getFirstColumnName(SCF, "key-not-exist", 0l)); assertNull(dba.getFirstColumnName(SCF, "key0", 10001l)); } @Test public void test_getFirstValue() { assertEquals(dba.getFirstValue(CF, "key0"), "value0"); assertNull(dba.getFirstValue(CF, "key-not-exist")); assertEquals(dba.getFirstValue(SCF, "key9", 9l), "value0"); assertNull(dba.getFirstValue(SCF, "key-not-exist", 0l)); assertNull(dba.getFirstValue(SCF, "key0", 10001l)); } @Test public void test_getLastColumn() { Column col = dba.getLastColumn(CF, "key0"); assertNotNull(col); assertEquals(DBUtil.string(col.name), "column9"); assertEquals(DBUtil.string(col.value), "value9"); assertNull(dba.getLastColumn(CF, "key-not-exist")); col = dba.getLastColumn(SCF, "key7", 2l); assertNotNull(col); assertEquals(DBUtil.string(col.name), "column9"); assertEquals(DBUtil.string(col.value), "value9"); assertNull(dba.getLastColumn(SCF, "key-not-exist", 3l)); assertNull(dba.getLastColumn(SCF, "key9", 10001l)); } @Test public void test_getLastColumnName() { byte[] colName = dba.getLastColumnName(CF, "key0"); assertEquals(DBUtil.string(colName), "column9"); assertNull(dba.getLastColumnName(CF, "key-not-exist")); colName = dba.getLastColumnName(SCF, "key5", 7l); assertEquals(DBUtil.string(colName), "column9"); assertNull(dba.getLastColumnName(SCF, "key-not-exist", 0l)); assertNull(dba.getLastColumnName(SCF, "key0", 10001l)); } @Test public void test_getLastValue() { assertEquals(dba.getLastValue(CF, "key0"), "value9"); assertNull(dba.getLastValue(CF, "key-not-exist")); assertEquals(dba.getLastValue(SCF, "key9", 9l), "value9"); assertNull(dba.getLastValue(SCF, "key-not-exist", 0l)); assertNull(dba.getLastValue(SCF, "key0", 10001l)); } @Test public void test_getColumns_and_getAllColumns() { assertEquals(dba.getColumns(CF, "key3", null, 5).size(), 5); dba.deleteColumns(CF, "key3", null, Arrays.asList((Object) 1, 2, 3)); super.clearData(); setUp(); assertEquals(dba.getColumns(CF, "key3", null, 5).size(), 5); assertEquals(dba.getAllColumns(CF, "key3").size(), 10); assertEquals(dba.getAllColumns(CF, "key3", null, 7, false).size(), 10); assertEquals(dba.getAllColumns(CF, "key0", null, 2, true).size(), 10); List<ColumnName> colNames = new ArrayList<ColumnName>(); colNames.add(CN.column0); colNames.add(CN.column1); colNames.add(CN.column6); colNames.add(CN.column9); List<Column> cols = dba.getColumns(CF, "key3", null, colNames, null, null, 0, false); assertEquals(cols.size(), 4); assertEquals(DBUtil.string(cols.get(0).getName()), CN.column0.toString()); assertEquals(DBUtil.string(cols.get(0).getValue()), "value0"); assertEquals(DBUtil.string(cols.get(2).getValue()), "value6"); colNames.add(CN.column_not_exist); cols = dba.getColumns(CF, "key3", null, colNames, null, null, 0, false); assertEquals(cols.size(), 4); colNames.remove(CN.column_not_exist); cols = dba.getColumns(CF, "key5", null, null, null, null, 2, false); assertEquals(cols.size(), 2); assertEquals(DBUtil.string(cols.get(0).getName()), CN.column0.toString()); assertEquals(DBUtil.string(cols.get(1).getValue()), "value1"); cols = dba.getColumns(CF, "key1", null, null, null, null, 2, true); assertEquals(cols.size(), 2); assertEquals(DBUtil.string(cols.get(0).getName()), CN.column9.toString()); assertEquals(DBUtil.string(cols.get(0).getValue()), "value9"); assertEquals(DBUtil.string(cols.get(1).getValue()), "value8"); cols = dba.getColumns(CF, "key0", null, null, null, null, 0, false); assertEquals(cols.size(), 10); assertEquals(DBUtil.string(cols.get(0).getName()), CN.column0.toString()); assertEquals(DBUtil.string(cols.get(0).getValue()), "value0"); assertEquals(DBUtil.string(cols.get(2).getValue()), "value2"); assertEquals(DBUtil.string(cols.get(9).getValue()), "value9"); cols = dba.getColumns(CF, "key0", null, null, DBUtil.bytesForName(CN.column8), DBUtil.bytesForName(CN.column5), 0, true); assertEquals(cols.size(), 4); assertEquals(DBUtil.string(cols.get(0).getName()), CN.column8.toString()); assertEquals(DBUtil.string(cols.get(0).getValue()), "value8"); assertEquals(DBUtil.string(cols.get(1).getValue()), "value7"); assertEquals(DBUtil.string(cols.get(3).getValue()), "value5"); cols = dba.getColumns(CF, "key4", null, null, DBUtil.bytesForName(CN.column8), null, 0, false); assertEquals(cols.size(), 2); assertEquals(DBUtil.string(cols.get(0).getName()), CN.column8.toString()); assertEquals(DBUtil.string(cols.get(1).getValue()), "value9"); cols = dba.getColumns(CF, "key9", null, null, DBUtil.bytesForName(CN.column2), null, 0, true); assertEquals(cols.size(), 3); assertEquals(DBUtil.string(cols.get(0).getName()), CN.column2.toString()); assertEquals(DBUtil.string(cols.get(2).getValue()), "value0"); cols = dba.getColumns(CF, "key9", null, null, DBUtil.bytesForName(CN.column_not_exist), null, 0, false); assertEquals(cols.size(), 0); cols = dba.getColumns(CF, "key9", null, Arrays.asList((ColumnName) CN.column_not_exist, CN.column_not_exist_2), null, null, 0, true); assertEquals(cols.size(), 0); cols = dba.getColumns(CF, "key-not-exist", null, null, null, null, 0, false); assertEquals(cols.size(), 0); cols = dba.getColumns(SCF, "key0", 0l, null, null, null, 0, false); assertEquals(cols.size(), 10); assertEquals(DBUtil.string(cols.get(0).getName()), CN.column0.toString()); assertEquals(DBUtil.string(cols.get(0).getValue()), "value0"); assertEquals(DBUtil.string(cols.get(2).getValue()), "value2"); assertEquals(DBUtil.string(cols.get(9).getValue()), "value9"); cols = dba.getColumns(SCF, "key4", 3l, null, DBUtil.bytesForName(CN.column8), DBUtil.bytesForName(CN.column5), 0, true); assertEquals(cols.size(), 4); assertEquals(DBUtil.string(cols.get(0).getName()), CN.column8.toString()); assertEquals(DBUtil.string(cols.get(0).getValue()), "value8"); assertEquals(DBUtil.string(cols.get(1).getValue()), "value7"); assertEquals(DBUtil.string(cols.get(3).getValue()), "value5"); cols = dba.getColumns(SCF, "key9", 8l, null, DBUtil.bytesForName(CN.column8), null, 0, false); assertEquals(cols.size(), 2); assertEquals(DBUtil.string(cols.get(0).getName()), CN.column8.toString()); assertEquals(DBUtil.string(cols.get(1).getValue()), "value9"); cols = dba.getColumns(SCF, "key9", 0l, null, DBUtil.bytesForName(CN.column_not_exist), null, 0, false); assertEquals(cols.size(), 0); cols = dba.getColumns(SCF, "key9", 7l, Arrays.asList((ColumnName) CN.column_not_exist, CN.column_not_exist_2), null, null, 0, true); assertEquals(cols.size(), 0); cols = dba.getColumns(SCF, "key9", 10001l, null, null, null, 0, false); assertEquals(cols.size(), 0); cols = dba.getColumns(SCF, "key-not-exist", 1l, null, null, null, 0, false); assertEquals(cols.size(), 0); } @Test public void test_getColumnsMap() { List<ColumnName> colNames = new ArrayList<ColumnName>(); colNames.add(CN.column0); colNames.add(CN.column1); colNames.add(CN.column6); colNames.add(CN.column9); colNames.add(CN.column_not_exist); ColumnMap<String> data = dba.getColumnsToMap(CF, "key3", null, colNames); assertEquals(data.size(), 4); assertEquals(data.get(CN.column0), "value0"); assertEquals(data.get(CN.column1), "value1"); assertEquals(data.get(CN.column9), "value9"); data = dba.getColumnsToMap(CF, "key-not-exist", null, colNames); assertEquals(data.size(), 0); } @Test public void test_getCount() { assertEquals(dba.getCount(CF, "key0"), 10); dba.deleteColumn(CF, "key0", CN.column0); assertEquals(dba.getCount(CF, "key0"), 9); dba.deleteColumn(CF, "key0", CN.column5); assertEquals(dba.getCount(CF, "key0"), 8); dba.deleteColumn(CF, "key0", CN.column_not_exist); assertEquals(dba.getCount(CF, "key0"), 8); assertEquals(dba.getCount(SCF, "key0"), 10); assertEquals(dba.getCount(SCF, "key0", 0l), 10); dba.deleteColumn(SCF, "key0", 0l, CN.column0); assertEquals(dba.getCount(SCF, "key0", 0l), 9); assertEquals(dba.getCount(SCF, "key0"), 10); dba.deleteSuperColumn(SCF, "key0", 9l); assertEquals(dba.getCount(SCF, "key0"), 9); } @Test public void test_getSuperColumn() { SuperColumn sc = dba.getSuperColumn(SCF, "key0", 0l); assertEquals(DBUtil.longFromBytes(sc.getName()).longValue(), 0l); assertEquals(10, sc.getColumns().size()); assertEquals(DBUtil.string(sc.getColumnsIterator().next().getName()), CN.column0.toString()); assertNull(dba.getSuperColumn(SCF, "key0", 10001l)); assertNull(dba.getSuperColumn(SCF, "key-not-exist", 0l)); sc = dba.getSuperColumn(SCF, "key0", 0l, true, 2); assertEquals(DBUtil.longFromBytes(sc.getName()).longValue(), 0l); assertEquals(2, sc.getColumns().size()); assertEquals(DBUtil.string(sc.getColumnsIterator().next().getName()), CN.column9.toString()); } @Test public void test_getFirstSuperColumn() { SuperColumn sc = dba.getFirstSuperColumn(SCF, "key0"); assertEquals(DBUtil.longFromBytes(sc.getName()).longValue(), 0l); assertEquals(10, sc.getColumns().size()); assertNull(dba.getFirstSuperColumn(SCF, "key-not-exist")); } @Test public void test_getLastSuperColumn() { SuperColumn sc = dba.getLastSuperColumn(SCF, "key0"); assertEquals(DBUtil.longFromBytes(sc.getName()).longValue(), 9l); assertEquals(10, sc.getColumns().size()); assertNull(dba.getLastSuperColumn(SCF, "key-not-exist")); } @Test public void test_getKeys_and_getAllKeys() { List<String> keys = dba.getKeys(CF, null, null, 1000); assertEquals(keys.size(), 10); assertTrue(keys.contains("key0")); assertTrue(keys.contains("key6")); assertFalse(keys.contains("key-not-exist")); keys = dba.getKeys(CF, null, null, 7); assertEquals(keys.size(), 7); keys = dba.getKeys(CF, null, null, 2); assertEquals(keys.size(), 2); keys = dba.getKeys(SCF, null, null, 7); assertEquals(keys.size(), 7); keys = dba.getAllKeys(CF); assertEquals(keys.size(), 10); assertTrue(keys.contains("key0")); assertTrue(keys.contains("key6")); assertFalse(keys.contains("key-not-exist")); keys = dba.getAllKeys(SCF); assertEquals(keys.size(), 10); assertTrue(keys.contains("key1")); assertTrue(keys.contains("key7")); assertFalse(keys.contains("key-not-exist")); } @Test public void test_isKeyEmpty() { assertTrue(dba.isKeyEmpty(CF, "key-not-exist")); assertFalse(dba.isKeyEmpty(CF, "key0")); assertFalse(dba.isKeyEmpty(CF, "key3")); assertFalse(dba.isKeyEmpty(CF, "key9")); assertTrue(dba.isKeyEmpty(CF, "key10")); dba.deleteKey(CF, "key9"); assertTrue(dba.isKeyEmpty(CF, "key9")); for (int i = 0; i < 10; i++) dba.deleteColumn(CF, "key0", CN.valueOf("column" + i)); assertTrue(dba.isKeyEmpty(CF, "key0")); assertFalse(dba.isKeyEmpty(SCF, "key9")); dba.deleteKey(SCF, "key9"); assertTrue(dba.isKeyEmpty(SCF, "key9")); assertFalse(dba.isKeyEmpty(SCF, "key0")); for (int i = 0; i < 10; i++) dba.deleteSuperColumn(SCF, "key0", i); assertTrue(dba.isKeyEmpty(SCF, "key0")); } @Test public void test_getKeysAndColumns_and_getAllKeysAndColumns() { List<Object> colNames = Arrays.asList((Object) CN.column3, CN.column6, CN.column9); Map<String, List<Column>> data = dba.getKeysAndColumns(CF, null, null, 1000, null, colNames); assertEquals(data.size(), 10); assertEquals(data.get("key0").size(), 3); List<Column> columns = data.get("key8"); assertEquals(columns.size(), 3); ColumnMap<String> colMap = DBUtil.columnsToMap(columns); assertTrue(colMap.containsKey(CN.column3)); assertTrue(colMap.containsKey(CN.column6)); assertTrue(colMap.containsKey(CN.column9)); assertEquals(colMap.get(CN.column6), "value6"); data = dba.getKeysAndColumns(SCF, null, null, 100, 9l, colNames); assertEquals(data.size(), 10); assertEquals(data.get("key0").size(), 3); columns = data.get("key8"); assertEquals(columns.size(), 3); colMap = DBUtil.columnsToMap(columns); assertTrue(colMap.containsKey(CN.column3)); assertTrue(colMap.containsKey(CN.column6)); assertTrue(colMap.containsKey(CN.column9)); assertFalse(colMap.containsKey(CN.column_not_exist)); assertEquals(colMap.get(CN.column6), "value6"); data = dba.getAllKeysAndColumns(CF, null); assertEquals(data.size(), 10); Set<String> keys = data.keySet(); assertTrue(keys.contains("key0")); assertTrue(keys.contains("key9")); assertTrue(keys.contains("key3")); assertFalse(keys.contains("key-not-exist")); colMap = DBUtil.columnsToMap(data.get("key9")); assertTrue(colMap.containsKey(CN.column3)); assertTrue(colMap.containsKey(CN.column6)); assertTrue(colMap.containsKey(CN.column9)); assertFalse(colMap.containsKey(CN.column_not_exist)); data = dba.getAllKeysAndColumns(SCF, null); assertEquals(data.size(), 10); assertTrue(keys.contains("key0")); assertTrue(keys.contains("key9")); assertTrue(keys.contains("key3")); assertFalse(keys.contains("key-not-exist")); } @Test public void test_deleteColumns() { assertEquals(dba.getAllColumns(CF, "key3").size(), 10); List<Object> colNames = Arrays.asList((Object) CN.column0, CN.column7, CN.column_not_exist); dba.deleteColumns(CF, "key3", null, colNames); assertEquals(dba.getAllColumns(CF, "key3").size(), 8); assertEquals(dba.getAllColumns(SCF, "key1", 5l).size(), 10); colNames = Arrays.asList((Object) CN.column4, CN.column9, CN.column_not_exist); dba.deleteColumns(SCF, "key1", 5l, colNames); assertEquals(dba.getAllColumns(SCF, "key1", 5l).size(), 8); } @Test public void test_getAllSuperColumns_and_deleteSuperColumns() { final String key = "key2"; final String another_key = "key0"; assertEquals(dba.getAllSuperColumns(SCF, key).size(), 10); assertEquals(dba.getAllSuperColumns(SCF, key, 9, true).size(), 10); try { dba.getAllSuperColumns(SCF, key, 1, true); fail("should throw exception for count: 1"); } catch (Exception e) { } dba.deleteSuperColumns(SCF, key, Arrays.asList((Object) 0, 1, 5, 7)); assertEquals(dba.getAllSuperColumns(SCF, key).size(), 6); dba.deleteSuperColumns(SCF, another_key, Arrays.asList((Object) 2, 3)); assertEquals(dba.getAllSuperColumns(SCF, key).size(), 6); dba.deleteSuperColumns(SCF, key, Arrays.asList((Object) 0, 1, 5, 7)); assertEquals(dba.getAllSuperColumns(SCF, key).size(), 6); dba.deleteSuperColumns(SCF, another_key, Arrays.asList((Object) 10001, 10002)); assertEquals(dba.getAllSuperColumns(SCF, key).size(), 6); dba.deleteSuperColumns(SCF, key, new SuperColumn[]{DBUtil.createSuperColumn(9l, null, null), DBUtil.createSuperColumn(10l, null, null)}); assertEquals(dba.getAllSuperColumns(SCF, key).size(), 5); } @Test public void test_deleteKey() { assertFalse(dba.isKeyEmpty(CF, "key0")); dba.deleteKey(CF, "key0"); assertTrue(dba.isKeyEmpty(CF, "key0")); assertTrue(dba.isKeyEmpty(CF, "key-not-exist")); assertFalse(dba.isKeyEmpty(SCF, "key3")); dba.deleteKey(SCF, "key3"); assertTrue(dba.isKeyEmpty(SCF, "key3")); assertTrue(dba.isKeyEmpty(SCF, "key-not-exist")); } @Test public void test_deleteSuperColumn() { assertEquals(dba.getAllSuperColumns(SCF, "key9").size(), 10); dba.deleteSuperColumn(SCF, "key9", 0l); assertEquals(dba.getAllSuperColumns(SCF, "key9").size(), 9); dba.deleteSuperColumn(SCF, "key9", 10001l); assertEquals(dba.getAllSuperColumns(SCF, "key9").size(), 9); } @Test public void test_deleteColumn() { assertEquals(dba.getAllColumns(CF, "key0").size(), 10); dba.deleteColumn(CF, "key0", CN.column0); dba.deleteColumn(CF, "key0", CN.column9); assertEquals(dba.getAllColumns(CF, "key0").size(), 8); dba.deleteColumn(CF, "key0", CN.column_not_exist); assertEquals(dba.getAllColumns(CF, "key0").size(), 8); } /** * NOTE: Test this class manually! It has been excluded from the build.xml testing part. */ }