HBase unittests improvements (fixed issues when the testfile wasn't setup)
Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/54a900b4 Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/54a900b4 Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/54a900b4 Branch: refs/heads/master Commit: 54a900b4c9a608687239982d602c8eabc67f3afa Parents: 9ab3004 Author: Gerard Dellemann <[email protected]> Authored: Wed May 30 10:54:22 2018 +0200 Committer: Gerard Dellemann <[email protected]> Committed: Wed May 30 10:54:22 2018 +0200 ---------------------------------------------------------------------- .../apache/metamodel/hbase/CreateTableTest.java | 122 ++++++++++++------- .../apache/metamodel/hbase/DeleteRowTest.java | 54 +++++--- .../apache/metamodel/hbase/DropTableTest.java | 22 +++- .../apache/metamodel/hbase/HBaseTestCase.java | 40 +++--- .../hbase/HBaseUpdateCallbackTest.java | 22 ++-- .../apache/metamodel/hbase/InsertRowTest.java | 9 +- 6 files changed, 169 insertions(+), 100 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/metamodel/blob/54a900b4/hbase/src/test/java/org/apache/metamodel/hbase/CreateTableTest.java ---------------------------------------------------------------------- diff --git a/hbase/src/test/java/org/apache/metamodel/hbase/CreateTableTest.java b/hbase/src/test/java/org/apache/metamodel/hbase/CreateTableTest.java index e804a67..5655e4a 100644 --- a/hbase/src/test/java/org/apache/metamodel/hbase/CreateTableTest.java +++ b/hbase/src/test/java/org/apache/metamodel/hbase/CreateTableTest.java @@ -31,19 +31,29 @@ public class CreateTableTest extends HBaseUpdateCallbackTest { * Check if creating table is supported */ public void testDropTableSupported() { - assertTrue(getUpdateCallback().isCreateTableSupported()); + if (isConfigured()) { + assertTrue(getUpdateCallback().isCreateTableSupported()); + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); + } } /** * Create a table with an immutableSchema, should throw a IllegalArgumentException */ public void testWrongSchema() { - final ImmutableSchema immutableSchema = new ImmutableSchema(getSchema()); - try { - getUpdateCallback().createTable(immutableSchema, TABLE_NAME).execute(); - fail("Should get an exception that the schema isn't mutable"); - } catch (IllegalArgumentException e) { - assertEquals("Not a mutable schema: " + immutableSchema, e.getMessage()); + if (isConfigured()) { + final ImmutableSchema immutableSchema = new ImmutableSchema(getSchema()); + try { + getUpdateCallback().createTable(immutableSchema, TABLE_NAME).execute(); + fail("Should get an exception that the schema isn't mutable"); + } catch (IllegalArgumentException e) { + assertEquals("Not a mutable schema: " + immutableSchema, e.getMessage()); + } + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); } } @@ -51,11 +61,16 @@ public class CreateTableTest extends HBaseUpdateCallbackTest { * Create a table without columnFamilies, should throw a MetaModelException */ public void testCreateTableWithoutColumnFamilies() { - try { - getUpdateCallback().createTable(getSchema(), TABLE_NAME).execute(); - fail("Should get an exception that the columnFamilies haven't been set"); - } catch (MetaModelException e) { - assertEquals("Creating a table without columnFamilies", e.getMessage()); + if (isConfigured()) { + try { + getUpdateCallback().createTable(getSchema(), TABLE_NAME).execute(); + fail("Should get an exception that the columnFamilies haven't been set"); + } catch (MetaModelException e) { + assertEquals("Creating a table without columnFamilies", e.getMessage()); + } + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); } } @@ -63,11 +78,16 @@ public class CreateTableTest extends HBaseUpdateCallbackTest { * Create a table with columnFamilies null, should throw a MetaModelException */ public void testColumnFamiliesNull() { - try { - getUpdateCallback().createTable(getSchema(), TABLE_NAME, null).execute(); - fail("Should get an exception that the columnFamilies haven't been set"); - } catch (MetaModelException e) { - assertEquals("Creating a table without columnFamilies", e.getMessage()); + if (isConfigured()) { + try { + getUpdateCallback().createTable(getSchema(), TABLE_NAME, null).execute(); + fail("Should get an exception that the columnFamilies haven't been set"); + } catch (MetaModelException e) { + assertEquals("Creating a table without columnFamilies", e.getMessage()); + } + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); } } @@ -75,12 +95,17 @@ public class CreateTableTest extends HBaseUpdateCallbackTest { * Create a table with columnFamilies empty, should throw a MetaModelException */ public void testColumnFamiliesEmpty() { - try { - final LinkedHashSet<String> columnFamilies = new LinkedHashSet<String>(); - getUpdateCallback().createTable(getSchema(), TABLE_NAME, columnFamilies).execute(); - fail("Should get an exception that the columnFamilies haven't been set"); - } catch (MetaModelException e) { - assertEquals("Creating a table without columnFamilies", e.getMessage()); + if (isConfigured()) { + try { + final LinkedHashSet<String> columnFamilies = new LinkedHashSet<String>(); + getUpdateCallback().createTable(getSchema(), TABLE_NAME, columnFamilies).execute(); + fail("Should get an exception that the columnFamilies haven't been set"); + } catch (MetaModelException e) { + assertEquals("Creating a table without columnFamilies", e.getMessage()); + } + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); } } @@ -112,13 +137,18 @@ public class CreateTableTest extends HBaseUpdateCallbackTest { * Creating a HBaseClient with the tableName null, should throw a exception */ public void testCreatingTheHBaseClientWithTableNameNull() { - try { - final LinkedHashSet<String> columnFamilies = new LinkedHashSet<>(); - columnFamilies.add("1"); - new HBaseClient(getDataContext().getConnection()).createTable(null, columnFamilies); - fail("Should get an exception that tableName is null"); - } catch (IllegalArgumentException e) { - assertEquals("Can't create a table without having the tableName or columnFamilies", e.getMessage()); + if (isConfigured()) { + try { + final LinkedHashSet<String> columnFamilies = new LinkedHashSet<>(); + columnFamilies.add("1"); + new HBaseClient(getDataContext().getConnection()).createTable(null, columnFamilies); + fail("Should get an exception that tableName is null"); + } catch (IllegalArgumentException e) { + assertEquals("Can't create a table without having the tableName or columnFamilies", e.getMessage()); + } + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); } } @@ -126,11 +156,16 @@ public class CreateTableTest extends HBaseUpdateCallbackTest { * Creating a HBaseClient with the tableName null, should throw a exception */ public void testCreatingTheHBaseClientWithColumnFamiliesNull() { - try { - new HBaseClient(getDataContext().getConnection()).createTable("1", null); - fail("Should get an exception that columnFamilies is null"); - } catch (IllegalArgumentException e) { - assertEquals("Can't create a table without having the tableName or columnFamilies", e.getMessage()); + if (isConfigured()) { + try { + new HBaseClient(getDataContext().getConnection()).createTable("1", null); + fail("Should get an exception that columnFamilies is null"); + } catch (IllegalArgumentException e) { + assertEquals("Can't create a table without having the tableName or columnFamilies", e.getMessage()); + } + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); } } @@ -138,12 +173,17 @@ public class CreateTableTest extends HBaseUpdateCallbackTest { * Creating a HBaseClient with the tableName null, should throw a exception */ public void testCreatingTheHBaseClientWithColumnFamiliesEmpty() { - try { - final LinkedHashSet<String> columnFamilies = new LinkedHashSet<>(); - new HBaseClient(getDataContext().getConnection()).createTable("1", columnFamilies); - fail("Should get an exception that columnFamilies is empty"); - } catch (IllegalArgumentException e) { - assertEquals("Can't create a table without having the tableName or columnFamilies", e.getMessage()); + if (isConfigured()) { + try { + final LinkedHashSet<String> columnFamilies = new LinkedHashSet<>(); + new HBaseClient(getDataContext().getConnection()).createTable("1", columnFamilies); + fail("Should get an exception that columnFamilies is empty"); + } catch (IllegalArgumentException e) { + assertEquals("Can't create a table without having the tableName or columnFamilies", e.getMessage()); + } + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); } } http://git-wip-us.apache.org/repos/asf/metamodel/blob/54a900b4/hbase/src/test/java/org/apache/metamodel/hbase/DeleteRowTest.java ---------------------------------------------------------------------- diff --git a/hbase/src/test/java/org/apache/metamodel/hbase/DeleteRowTest.java b/hbase/src/test/java/org/apache/metamodel/hbase/DeleteRowTest.java index 8d21194..893b956 100644 --- a/hbase/src/test/java/org/apache/metamodel/hbase/DeleteRowTest.java +++ b/hbase/src/test/java/org/apache/metamodel/hbase/DeleteRowTest.java @@ -31,19 +31,29 @@ public class DeleteRowTest extends HBaseUpdateCallbackTest { * Delete is supported */ public void testDeleteSupported() { - assertTrue(getUpdateCallback().isDeleteSupported()); + if (isConfigured()) { + assertTrue(getUpdateCallback().isDeleteSupported()); + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); + } } /** * Having the table type wrong, should throw an exception */ public void testTableWrongType() { - final MutableTable mutableTable = new MutableTable(); - try { - getUpdateCallback().deleteFrom(mutableTable); - fail("Should get an exception that the type of the table is wrong."); - } catch (IllegalArgumentException e) { - assertEquals("Not an HBase table: " + mutableTable, e.getMessage()); + if (isConfigured()) { + final MutableTable mutableTable = new MutableTable(); + try { + getUpdateCallback().deleteFrom(mutableTable); + fail("Should get an exception that the type of the table is wrong."); + } catch (IllegalArgumentException e) { + assertEquals("Not an HBase table: " + mutableTable, e.getMessage()); + } + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); } } @@ -91,11 +101,16 @@ public class DeleteRowTest extends HBaseUpdateCallbackTest { * Creating a HBaseClient with the tableName null, should throw a exception */ public void testCreatingTheHBaseClientWithTableNameNull() { - try { - new HBaseClient(getDataContext().getConnection()).deleteRow(null, new String("1")); - fail("Should get an exception that tableName is null"); - } catch (IllegalArgumentException e) { - assertEquals("Can't delete a row without having tableName or rowKey", e.getMessage()); + if (isConfigured()) { + try { + new HBaseClient(getDataContext().getConnection()).deleteRow(null, new String("1")); + fail("Should get an exception that tableName is null"); + } catch (IllegalArgumentException e) { + assertEquals("Can't delete a row without having tableName or rowKey", e.getMessage()); + } + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); } } @@ -103,11 +118,16 @@ public class DeleteRowTest extends HBaseUpdateCallbackTest { * Creating a HBaseClient with the rowKey null, should throw a exception */ public void testCreatingTheHBaseClientWithRowKeyNull() { - try { - new HBaseClient(getDataContext().getConnection()).deleteRow("tableName", null); - fail("Should get an exception that rowKey is null"); - } catch (IllegalArgumentException e) { - assertEquals("Can't delete a row without having tableName or rowKey", e.getMessage()); + if (isConfigured()) { + try { + new HBaseClient(getDataContext().getConnection()).deleteRow("tableName", null); + fail("Should get an exception that rowKey is null"); + } catch (IllegalArgumentException e) { + assertEquals("Can't delete a row without having tableName or rowKey", e.getMessage()); + } + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); } } http://git-wip-us.apache.org/repos/asf/metamodel/blob/54a900b4/hbase/src/test/java/org/apache/metamodel/hbase/DropTableTest.java ---------------------------------------------------------------------- diff --git a/hbase/src/test/java/org/apache/metamodel/hbase/DropTableTest.java b/hbase/src/test/java/org/apache/metamodel/hbase/DropTableTest.java index d5b19ef..39bb06d 100644 --- a/hbase/src/test/java/org/apache/metamodel/hbase/DropTableTest.java +++ b/hbase/src/test/java/org/apache/metamodel/hbase/DropTableTest.java @@ -30,7 +30,12 @@ public class DropTableTest extends HBaseUpdateCallbackTest { * Check if drop table is supported */ public void testDropTableSupported() { - assertTrue(getUpdateCallback().isDropTableSupported()); + if (isConfigured()) { + assertTrue(getUpdateCallback().isDropTableSupported()); + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); + } } /** @@ -55,11 +60,16 @@ public class DropTableTest extends HBaseUpdateCallbackTest { * Creating a HBaseClient with the tableName null, should throw a exception */ public void testCreatingTheHBaseClientWithTableNameNull() { - try { - new HBaseClient(getDataContext().getConnection()).dropTable(null); - fail("Should get an exception that tableName is null"); - } catch (IllegalArgumentException e) { - assertEquals("Can't drop a table without having the tableName", e.getMessage()); + if (isConfigured()) { + try { + new HBaseClient(getDataContext().getConnection()).dropTable(null); + fail("Should get an exception that tableName is null"); + } catch (IllegalArgumentException e) { + assertEquals("Can't drop a table without having the tableName", e.getMessage()); + } + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); } } http://git-wip-us.apache.org/repos/asf/metamodel/blob/54a900b4/hbase/src/test/java/org/apache/metamodel/hbase/HBaseTestCase.java ---------------------------------------------------------------------- diff --git a/hbase/src/test/java/org/apache/metamodel/hbase/HBaseTestCase.java b/hbase/src/test/java/org/apache/metamodel/hbase/HBaseTestCase.java index 91180cb..70fd2e3 100644 --- a/hbase/src/test/java/org/apache/metamodel/hbase/HBaseTestCase.java +++ b/hbase/src/test/java/org/apache/metamodel/hbase/HBaseTestCase.java @@ -63,40 +63,34 @@ public abstract class HBaseTestCase extends TestCase { private boolean _configured; private static HBaseDataContext _dataContext; - private boolean setUpIsDone = false; - @Override protected void setUp() throws Exception { super.setUp(); - if (!setUpIsDone) { - Properties properties = new Properties(); - File file = new File(getPropertyFilePath()); - if (file.exists()) { - properties.load(new FileReader(file)); - zookeeperHostname = properties.getProperty("hbase.zookeeper.hostname"); - String zookeeperPortPropertyValue = properties.getProperty("hbase.zookeeper.port"); - if (zookeeperPortPropertyValue != null && !zookeeperPortPropertyValue.isEmpty()) { - zookeeperPort = Integer.parseInt(zookeeperPortPropertyValue); - } - - _configured = (zookeeperHostname != null && !zookeeperHostname.isEmpty()); - } else { - _configured = false; - } - if (isConfigured()) { - final HBaseConfiguration configuration = new HBaseConfiguration(zookeeperHostname, zookeeperPort, - ColumnType.VARCHAR); - setDataContext(new HBaseDataContext(configuration)); + Properties properties = new Properties(); + File file = new File(getPropertyFilePath()); + if (file.exists()) { + properties.load(new FileReader(file)); + zookeeperHostname = properties.getProperty("hbase.zookeeper.hostname"); + String zookeeperPortPropertyValue = properties.getProperty("hbase.zookeeper.port"); + if (zookeeperPortPropertyValue != null && !zookeeperPortPropertyValue.isEmpty()) { + zookeeperPort = Integer.parseInt(zookeeperPortPropertyValue); } - setUpIsDone = true; + + _configured = (zookeeperHostname != null && !zookeeperHostname.isEmpty()); + } else { + _configured = false; + } + if (isConfigured()) { + final HBaseConfiguration configuration = new HBaseConfiguration(zookeeperHostname, zookeeperPort, + ColumnType.VARCHAR); + setDataContext(new HBaseDataContext(configuration)); } } @AfterClass public static void oneTimeTeardown() throws IOException { _dataContext.getConnection().close(); - ; } private String getPropertyFilePath() { http://git-wip-us.apache.org/repos/asf/metamodel/blob/54a900b4/hbase/src/test/java/org/apache/metamodel/hbase/HBaseUpdateCallbackTest.java ---------------------------------------------------------------------- diff --git a/hbase/src/test/java/org/apache/metamodel/hbase/HBaseUpdateCallbackTest.java b/hbase/src/test/java/org/apache/metamodel/hbase/HBaseUpdateCallbackTest.java index b010c71..60a5ba6 100644 --- a/hbase/src/test/java/org/apache/metamodel/hbase/HBaseUpdateCallbackTest.java +++ b/hbase/src/test/java/org/apache/metamodel/hbase/HBaseUpdateCallbackTest.java @@ -43,19 +43,19 @@ public abstract class HBaseUpdateCallbackTest extends HBaseTestCase { private HBaseUpdateCallback updateCallback; private MutableSchema schema; - private boolean setUpIsDone = false; + private static boolean warningGiven = false; @Override protected void setUp() throws Exception { super.setUp(); if (isConfigured()) { - if (setUpIsDone) { - dropTableIfItExists(); - } else { - updateCallback = new HBaseUpdateCallback(getDataContext()); - schema = (MutableSchema) getDataContext().getDefaultSchema(); - dropTableIfItExists(); - setUpIsDone = true; + updateCallback = new HBaseUpdateCallback(getDataContext()); + schema = (MutableSchema) getDataContext().getDefaultSchema(); + dropTableIfItExists(); + } else { + if (!warningGiven) { + System.err.println(getInvalidConfigurationMessage()); + warningGiven = true; } } } @@ -187,9 +187,9 @@ public abstract class HBaseUpdateCallbackTest extends HBaseTestCase { } protected void warnAboutANotExecutedTest(String className, String methodName) { - String logWarning = "Test(method) \"" + className + "#" + methodName - + "\" is not executed, because the HBasetest is not configured."; - // System.out.println(logWarning); + String logWarning = "Test \"" + className + "#" + methodName + + "()\" is not executed, because the HBasetest is not configured."; + System.err.println(logWarning); logger.warn(logWarning); } http://git-wip-us.apache.org/repos/asf/metamodel/blob/54a900b4/hbase/src/test/java/org/apache/metamodel/hbase/InsertRowTest.java ---------------------------------------------------------------------- diff --git a/hbase/src/test/java/org/apache/metamodel/hbase/InsertRowTest.java b/hbase/src/test/java/org/apache/metamodel/hbase/InsertRowTest.java index 622b70b..7a1705f 100644 --- a/hbase/src/test/java/org/apache/metamodel/hbase/InsertRowTest.java +++ b/hbase/src/test/java/org/apache/metamodel/hbase/InsertRowTest.java @@ -34,7 +34,12 @@ public class InsertRowTest extends HBaseUpdateCallbackTest { * @throws IOException */ public void testInsertSupported() throws IOException { - assertTrue(getUpdateCallback().isInsertSupported()); + if (isConfigured()) { + assertTrue(getUpdateCallback().isInsertSupported()); + } else { + warnAboutANotExecutedTest(getClass().getName(), new Object() { + }.getClass().getEnclosingMethod().getName()); + } } /** @@ -63,7 +68,7 @@ public class InsertRowTest extends HBaseUpdateCallbackTest { */ public void testWrongTableType() throws IOException { if (isConfigured()) { - MutableTable mutableTable = new MutableTable(); + final MutableTable mutableTable = new MutableTable(); try { final HBaseTable existingTable = createAndInsertTable(TABLE_NAME, HBaseDataContext.FIELD_ID, CF_FOO, CF_BAR);
