SQOOP-1449: Sqoop2: From/To: Re-enable common tests (Abraham Elmahrek via Jarek Jarcec Cecho)
Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/3bb7ff83 Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/3bb7ff83 Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/3bb7ff83 Branch: refs/heads/SQOOP-1367 Commit: 3bb7ff834123f74dd650a57597a59c4854479f0d Parents: 5f04f53 Author: Jarek Jarcec Cecho <[email protected]> Authored: Tue Aug 19 13:42:50 2014 -0700 Committer: Jarek Jarcec Cecho <[email protected]> Committed: Tue Aug 19 13:42:50 2014 -0700 ---------------------------------------------------------------------- .../org/apache/sqoop/common/TestMapContext.java | 156 +++---- .../sqoop/common/TestSqoopResponseCode.java | 26 +- .../apache/sqoop/common/TestVersionInfo.java | 16 +- .../apache/sqoop/json/TestConnectionBean.java | 202 ++++----- .../apache/sqoop/json/TestConnectorBean.java | 72 ++-- .../apache/sqoop/json/TestFrameworkBean.java | 52 +-- .../java/org/apache/sqoop/json/TestJobBean.java | 116 ++--- .../org/apache/sqoop/json/TestSchemaBean.java | 40 +- .../java/org/apache/sqoop/json/TestUtil.java | 216 +++++----- .../apache/sqoop/json/TestValidationBean.java | 212 +++++---- .../sqoop/json/util/TestFormSerialization.java | 224 +++++----- .../json/util/TestSchemaSerialization.java | 262 ++++++------ .../org/apache/sqoop/model/TestFormUtils.java | 428 +++++++++---------- .../sqoop/model/TestMAccountableEntity.java | 56 +-- .../apache/sqoop/model/TestMBooleanInput.java | 132 +++--- .../org/apache/sqoop/model/TestMConnection.java | 178 ++++---- .../sqoop/model/TestMConnectionForms.java | 32 +- .../org/apache/sqoop/model/TestMConnector.java | 72 ++-- .../org/apache/sqoop/model/TestMEnumInput.java | 68 +-- .../java/org/apache/sqoop/model/TestMForm.java | 114 ++--- .../org/apache/sqoop/model/TestMFormList.java | 52 +-- .../org/apache/sqoop/model/TestMFramework.java | 29 +- .../apache/sqoop/model/TestMIntegerInput.java | 144 +++---- .../java/org/apache/sqoop/model/TestMJob.java | 213 ++++----- .../org/apache/sqoop/model/TestMJobForms.java | 31 +- .../org/apache/sqoop/model/TestMMapInput.java | 160 +++---- .../apache/sqoop/model/TestMNamedElement.java | 20 +- .../sqoop/model/TestMPersistableEntity.java | 46 +- .../apache/sqoop/model/TestMStringInput.java | 132 +++--- .../sqoop/model/TestMValidatedElement.java | 80 ++-- .../sqoop/submission/TestSubmissionStatus.java | 68 +-- .../sqoop/submission/counter/TestCounter.java | 32 +- .../submission/counter/TestCounterGroup.java | 104 ++--- .../sqoop/submission/counter/TestCounters.java | 76 ++-- .../sqoop/utils/TestMapResourceBundle.java | 20 +- .../org/apache/sqoop/validation/TestStatus.java | 50 +-- .../apache/sqoop/validation/TestValidation.java | 218 +++++----- 37 files changed, 2113 insertions(+), 2036 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/common/TestMapContext.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/common/TestMapContext.java b/common/src/test/java/org/apache/sqoop/common/TestMapContext.java index 4c229ae..f4718c0 100644 --- a/common/src/test/java/org/apache/sqoop/common/TestMapContext.java +++ b/common/src/test/java/org/apache/sqoop/common/TestMapContext.java @@ -29,82 +29,82 @@ import org.junit.Test; */ public class TestMapContext { -// /** -// * Test method for Initialization -// */ -// @Test -// public void testInitalization() { -// Map<String, String> options = new HashMap<String, String>(); -// options.put("testkey", "testvalue"); -// MapContext mc = new MapContext(options); -// Assert.assertEquals("testvalue", mc.getString("testkey")); -// } -// -// /** -// * Test method for getString -// */ -// @Test -// public void testGetString() { -// Map<String, String> options = new HashMap<String, String>(); -// options.put("testkey", "testvalue"); -// MapContext mc = new MapContext(options); -// Assert.assertEquals("testvalue", mc.getString("testkey", "defaultValue")); -// Assert.assertEquals("defaultValue", -// mc.getString("wrongKey", "defaultValue")); -// } -// -// /** -// * Test method for getString with default value -// */ -// @Test -// public void testGetBoolean() { -// Map<String, String> options = new HashMap<String, String>(); -// options.put("testkey", "true"); -// MapContext mc = new MapContext(options); -// Assert.assertEquals(true, mc.getBoolean("testkey", false)); -// Assert.assertEquals(false, mc.getBoolean("wrongKey", false)); -// } -// -// /** -// * Test method for getInt with default value -// */ -// @Test -// public void testGetInt() { -// Map<String, String> options = new HashMap<String, String>(); -// options.put("testkey", "123"); -// MapContext mc = new MapContext(options); -// Assert.assertEquals(123, mc.getInt("testkey", 456)); -// Assert.assertEquals(456, mc.getInt("wrongKey", 456)); -// } -// -// /** -// * Test method for getLong with default value -// */ -// @Test -// public void testGetLong() { -// Map<String, String> options = new HashMap<String, String>(); -// options.put("testkey", "123"); -// MapContext mc = new MapContext(options); -// Assert.assertEquals(123l, mc.getLong("testkey", 456l)); -// Assert.assertEquals(456l, mc.getLong("wrongKey", 456l)); -// } -// -// /** -// * Test method for getNestedProperties() -// */ -// @Test -// public void testGetNestedProperties() { -// Map<String, String> options = new HashMap<String, String>(); -// options.put("sqooptest1", "value"); -// options.put("sqooptest2", "value"); -// options.put("testsqoop1", "value"); -// options.put("testsqoop1", "value"); -// MapContext mc = new MapContext(options); -// Map<String, String> result = mc.getNestedProperties("sqoop"); -// Assert.assertEquals(2, result.size()); -// Assert.assertTrue(result.containsKey("test1")); -// Assert.assertTrue(result.containsKey("test2")); -// Assert.assertFalse(result.containsKey("testsqoop1")); -// Assert.assertFalse(result.containsKey("testsqoop2")); -// } + /** + * Test method for Initialization + */ + @Test + public void testInitalization() { + Map<String, String> options = new HashMap<String, String>(); + options.put("testkey", "testvalue"); + MapContext mc = new MapContext(options); + Assert.assertEquals("testvalue", mc.getString("testkey")); + } + + /** + * Test method for getString + */ + @Test + public void testGetString() { + Map<String, String> options = new HashMap<String, String>(); + options.put("testkey", "testvalue"); + MapContext mc = new MapContext(options); + Assert.assertEquals("testvalue", mc.getString("testkey", "defaultValue")); + Assert.assertEquals("defaultValue", + mc.getString("wrongKey", "defaultValue")); + } + + /** + * Test method for getString with default value + */ + @Test + public void testGetBoolean() { + Map<String, String> options = new HashMap<String, String>(); + options.put("testkey", "true"); + MapContext mc = new MapContext(options); + Assert.assertEquals(true, mc.getBoolean("testkey", false)); + Assert.assertEquals(false, mc.getBoolean("wrongKey", false)); + } + + /** + * Test method for getInt with default value + */ + @Test + public void testGetInt() { + Map<String, String> options = new HashMap<String, String>(); + options.put("testkey", "123"); + MapContext mc = new MapContext(options); + Assert.assertEquals(123, mc.getInt("testkey", 456)); + Assert.assertEquals(456, mc.getInt("wrongKey", 456)); + } + + /** + * Test method for getLong with default value + */ + @Test + public void testGetLong() { + Map<String, String> options = new HashMap<String, String>(); + options.put("testkey", "123"); + MapContext mc = new MapContext(options); + Assert.assertEquals(123l, mc.getLong("testkey", 456l)); + Assert.assertEquals(456l, mc.getLong("wrongKey", 456l)); + } + + /** + * Test method for getNestedProperties() + */ + @Test + public void testGetNestedProperties() { + Map<String, String> options = new HashMap<String, String>(); + options.put("sqooptest1", "value"); + options.put("sqooptest2", "value"); + options.put("testsqoop1", "value"); + options.put("testsqoop1", "value"); + MapContext mc = new MapContext(options); + Map<String, String> result = mc.getNestedProperties("sqoop"); + Assert.assertEquals(2, result.size()); + Assert.assertTrue(result.containsKey("test1")); + Assert.assertTrue(result.containsKey("test2")); + Assert.assertFalse(result.containsKey("testsqoop1")); + Assert.assertFalse(result.containsKey("testsqoop2")); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/common/TestSqoopResponseCode.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/common/TestSqoopResponseCode.java b/common/src/test/java/org/apache/sqoop/common/TestSqoopResponseCode.java index d8aa1d5..f556c1c 100644 --- a/common/src/test/java/org/apache/sqoop/common/TestSqoopResponseCode.java +++ b/common/src/test/java/org/apache/sqoop/common/TestSqoopResponseCode.java @@ -25,17 +25,17 @@ import org.junit.Test; */ public class TestSqoopResponseCode { -// /** -// * Test for the method getFromCode() -// */ -// @Test -// public void testGetFromCode() { -// SqoopResponseCode src = SqoopResponseCode.getFromCode("1000"); -// Assert.assertEquals("OK", src.getMessage()); -// Assert.assertEquals("1000", src.getCode()); -// -// SqoopResponseCode src1 = SqoopResponseCode.getFromCode("2000"); -// Assert.assertEquals("ERROR", src1.getMessage()); -// Assert.assertEquals("2000", src1.getCode()); -// } + /** + * Test for the method getFromCode() + */ + @Test + public void testGetFromCode() { + SqoopResponseCode src = SqoopResponseCode.getFromCode("1000"); + Assert.assertEquals("OK", src.getMessage()); + Assert.assertEquals("1000", src.getCode()); + + SqoopResponseCode src1 = SqoopResponseCode.getFromCode("2000"); + Assert.assertEquals("ERROR", src1.getMessage()); + Assert.assertEquals("2000", src1.getCode()); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/common/TestVersionInfo.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/common/TestVersionInfo.java b/common/src/test/java/org/apache/sqoop/common/TestVersionInfo.java index f853af0..27d78f4 100644 --- a/common/src/test/java/org/apache/sqoop/common/TestVersionInfo.java +++ b/common/src/test/java/org/apache/sqoop/common/TestVersionInfo.java @@ -22,13 +22,13 @@ import org.junit.Test; public class TestVersionInfo { -// @Test -// public void testValues() throws Exception { -// Assert.assertNotSame("Unknown", VersionInfo.getVersion()); -// Assert.assertNotSame("Unknown", VersionInfo.getRevision()); -// Assert.assertNotSame("Unknown", VersionInfo.getDate()); -// Assert.assertNotSame("Unknown", VersionInfo.getUser()); -// Assert.assertNotSame("Unknown", VersionInfo.getUrl()); -// } + @Test + public void testValues() throws Exception { + Assert.assertNotSame("Unknown", VersionInfo.getVersion()); + Assert.assertNotSame("Unknown", VersionInfo.getRevision()); + Assert.assertNotSame("Unknown", VersionInfo.getDate()); + Assert.assertNotSame("Unknown", VersionInfo.getUser()); + Assert.assertNotSame("Unknown", VersionInfo.getUrl()); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java b/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java index 205694a..19f81a8 100644 --- a/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java +++ b/common/src/test/java/org/apache/sqoop/json/TestConnectionBean.java @@ -34,105 +34,105 @@ import static org.apache.sqoop.json.TestUtil.*; * */ public class TestConnectionBean { -// @Test -// public void testSerialization() { -// Date created = new Date(); -// Date updated = new Date(); -// MConnection connection = getConnection("ahoj"); -// connection.setName("Connection"); -// connection.setPersistenceId(666); -// connection.setCreationUser("admin"); -// connection.setCreationDate(created); -// connection.setLastUpdateUser("user"); -// connection.setLastUpdateDate(updated); -// connection.setEnabled(false); -// -// // Fill some data at the beginning -// MStringInput input = (MStringInput) connection.getConnectorPart().getForms() -// .get(0).getInputs().get(0); -// input.setValue("Hi there!"); -// -// // Serialize it to JSON object -// ConnectionBean bean = new ConnectionBean(connection); -// JSONObject json = bean.extract(false); -// -// // Check for sensitivity -// JSONArray all = (JSONArray)json.get("all"); -// JSONObject allItem = (JSONObject)all.get(0); -// JSONArray connectors = (JSONArray)allItem.get("connector"); -// JSONObject connector = (JSONObject)connectors.get(0); -// JSONArray inputs = (JSONArray)connector.get("inputs"); -// for (Object input1 : inputs) { -// assertTrue(((JSONObject)input1).containsKey("sensitive")); -// } -// -// // "Move" it across network in text form -// String string = json.toJSONString(); -// -// // Retrieved transferred object -// JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); -// ConnectionBean retrievedBean = new ConnectionBean(); -// retrievedBean.restore(retrievedJson); -// MConnection target = retrievedBean.getConnections().get(0); -// -// // Check id and name -// assertEquals(666, target.getPersistenceId()); -// assertEquals("Connection", target.getName()); -// assertEquals("admin", target.getCreationUser()); -// assertEquals(created, target.getCreationDate()); -// assertEquals("user", target.getLastUpdateUser()); -// assertEquals(updated, target.getLastUpdateDate()); -// assertEquals(false, target.getEnabled()); -// -// // Test that value was correctly moved -// MStringInput targetInput = (MStringInput) target.getConnectorPart() -// .getForms().get(0).getInputs().get(0); -// assertEquals("Hi there!", targetInput.getValue()); -// } -// -// @Test -// public void testSensitivityFilter() { -// Date created = new Date(); -// Date updated = new Date(); -// MConnection connection = getConnection("ahoj"); -// connection.setName("Connection"); -// connection.setPersistenceId(666); -// connection.setCreationUser("admin"); -// connection.setCreationDate(created); -// connection.setLastUpdateUser("user"); -// connection.setLastUpdateDate(updated); -// connection.setEnabled(true); -// -// // Fill some data at the beginning -// MStringInput input = (MStringInput) connection.getConnectorPart().getForms() -// .get(0).getInputs().get(0); -// input.setValue("Hi there!"); -// -// // Serialize it to JSON object -// ConnectionBean bean = new ConnectionBean(connection); -// JSONObject json = bean.extract(false); -// JSONObject jsonFiltered = bean.extract(true); -// -// // Sensitive values should exist -// JSONArray all = (JSONArray)json.get("all"); -// JSONObject allItem = (JSONObject)all.get(0); -// JSONArray connectors = (JSONArray)allItem.get("connector"); -// JSONObject connector = (JSONObject)connectors.get(0); -// JSONArray inputs = (JSONArray)connector.get("inputs"); -// assertEquals(3, inputs.size()); -// // Inputs are ordered when creating connection -// JSONObject password = (JSONObject)inputs.get(2); -// assertTrue(password.containsKey("value")); -// -// // Sensitive values should not exist -// all = (JSONArray)jsonFiltered.get("all"); -// allItem = (JSONObject)all.get(0); -// connectors = (JSONArray)allItem.get("connector"); -// connector = (JSONObject)connectors.get(0); -// inputs = (JSONArray)connector.get("inputs"); -// assertEquals(3, inputs.size()); -// // Inputs are ordered when creating connection -// password = (JSONObject)inputs.get(2); -// assertFalse(password.containsKey("value")); -// } + @Test + public void testSerialization() { + Date created = new Date(); + Date updated = new Date(); + MConnection connection = getConnection("ahoj"); + connection.setName("Connection"); + connection.setPersistenceId(666); + connection.setCreationUser("admin"); + connection.setCreationDate(created); + connection.setLastUpdateUser("user"); + connection.setLastUpdateDate(updated); + connection.setEnabled(false); + + // Fill some data at the beginning + MStringInput input = (MStringInput) connection.getConnectorPart().getForms() + .get(0).getInputs().get(0); + input.setValue("Hi there!"); + + // Serialize it to JSON object + ConnectionBean bean = new ConnectionBean(connection); + JSONObject json = bean.extract(false); + + // Check for sensitivity + JSONArray all = (JSONArray)json.get("all"); + JSONObject allItem = (JSONObject)all.get(0); + JSONArray connectors = (JSONArray)allItem.get("connector"); + JSONObject connector = (JSONObject)connectors.get(0); + JSONArray inputs = (JSONArray)connector.get("inputs"); + for (Object input1 : inputs) { + assertTrue(((JSONObject)input1).containsKey("sensitive")); + } + + // "Move" it across network in text form + String string = json.toJSONString(); + + // Retrieved transferred object + JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); + ConnectionBean retrievedBean = new ConnectionBean(); + retrievedBean.restore(retrievedJson); + MConnection target = retrievedBean.getConnections().get(0); + + // Check id and name + assertEquals(666, target.getPersistenceId()); + assertEquals("Connection", target.getName()); + assertEquals("admin", target.getCreationUser()); + assertEquals(created, target.getCreationDate()); + assertEquals("user", target.getLastUpdateUser()); + assertEquals(updated, target.getLastUpdateDate()); + assertEquals(false, target.getEnabled()); + + // Test that value was correctly moved + MStringInput targetInput = (MStringInput) target.getConnectorPart() + .getForms().get(0).getInputs().get(0); + assertEquals("Hi there!", targetInput.getValue()); + } + + @Test + public void testSensitivityFilter() { + Date created = new Date(); + Date updated = new Date(); + MConnection connection = getConnection("ahoj"); + connection.setName("Connection"); + connection.setPersistenceId(666); + connection.setCreationUser("admin"); + connection.setCreationDate(created); + connection.setLastUpdateUser("user"); + connection.setLastUpdateDate(updated); + connection.setEnabled(true); + + // Fill some data at the beginning + MStringInput input = (MStringInput) connection.getConnectorPart().getForms() + .get(0).getInputs().get(0); + input.setValue("Hi there!"); + + // Serialize it to JSON object + ConnectionBean bean = new ConnectionBean(connection); + JSONObject json = bean.extract(false); + JSONObject jsonFiltered = bean.extract(true); + + // Sensitive values should exist + JSONArray all = (JSONArray)json.get("all"); + JSONObject allItem = (JSONObject)all.get(0); + JSONArray connectors = (JSONArray)allItem.get("connector"); + JSONObject connector = (JSONObject)connectors.get(0); + JSONArray inputs = (JSONArray)connector.get("inputs"); + assertEquals(3, inputs.size()); + // Inputs are ordered when creating connection + JSONObject password = (JSONObject)inputs.get(2); + assertTrue(password.containsKey("value")); + + // Sensitive values should not exist + all = (JSONArray)jsonFiltered.get("all"); + allItem = (JSONObject)all.get(0); + connectors = (JSONArray)allItem.get("connector"); + connector = (JSONObject)connectors.get(0); + inputs = (JSONArray)connector.get("inputs"); + assertEquals(3, inputs.size()); + // Inputs are ordered when creating connection + password = (JSONObject)inputs.get(2); + assertFalse(password.containsKey("value")); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestConnectorBean.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/json/TestConnectorBean.java b/common/src/test/java/org/apache/sqoop/json/TestConnectorBean.java index 58ea308..e078474 100644 --- a/common/src/test/java/org/apache/sqoop/json/TestConnectorBean.java +++ b/common/src/test/java/org/apache/sqoop/json/TestConnectorBean.java @@ -37,40 +37,40 @@ import static org.apache.sqoop.json.TestUtil.*; */ public class TestConnectorBean { -// /** -// * Test that by JSON serialization followed by deserialization we will get -// * equal connector object. -// */ -// @Test -// public void testSerialization() { -// // Create testing connector -// List<MConnector> connectors = new LinkedList<MConnector>(); -// connectors.add(getConnector("jdbc")); -// connectors.add(getConnector("mysql")); -// -// // Create testing bundles -// Map<Long, ResourceBundle> bundles = new HashMap<Long, ResourceBundle>(); -// bundles.put(1L, getResourceBundle()); -// bundles.put(2L, getResourceBundle()); -// -// // Serialize it to JSON object -// ConnectorBean bean = new ConnectorBean(connectors, bundles); -// JSONObject json = bean.extract(false); -// -// // "Move" it across network in text form -// String string = json.toJSONString(); -// -// // Retrieved transferred object -// JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); -// ConnectorBean retrievedBean = new ConnectorBean(); -// retrievedBean.restore(retrievedJson); -// -// assertEquals(connectors.size(), retrievedBean.getConnectors().size()); -// assertEquals(connectors.get(0), retrievedBean.getConnectors().get(0)); -// -// ResourceBundle retrievedBundle = retrievedBean.getResourceBundles().get(1L); -// assertNotNull(retrievedBundle); -// assertEquals("a", retrievedBundle.getString("a")); -// assertEquals("b", retrievedBundle.getString("b")); -// } + /** + * Test that by JSON serialization followed by deserialization we will get + * equal connector object. + */ + @Test + public void testSerialization() { + // Create testing connector + List<MConnector> connectors = new LinkedList<MConnector>(); + connectors.add(getConnector("jdbc")); + connectors.add(getConnector("mysql")); + + // Create testing bundles + Map<Long, ResourceBundle> bundles = new HashMap<Long, ResourceBundle>(); + bundles.put(1L, getResourceBundle()); + bundles.put(2L, getResourceBundle()); + + // Serialize it to JSON object + ConnectorBean bean = new ConnectorBean(connectors, bundles); + JSONObject json = bean.extract(false); + + // "Move" it across network in text form + String string = json.toJSONString(); + + // Retrieved transferred object + JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); + ConnectorBean retrievedBean = new ConnectorBean(); + retrievedBean.restore(retrievedJson); + + assertEquals(connectors.size(), retrievedBean.getConnectors().size()); + assertEquals(connectors.get(0), retrievedBean.getConnectors().get(0)); + + ResourceBundle retrievedBundle = retrievedBean.getResourceBundles().get(1L); + assertNotNull(retrievedBundle); + assertEquals("a", retrievedBundle.getString("a")); + assertEquals("b", retrievedBundle.getString("b")); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestFrameworkBean.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/json/TestFrameworkBean.java b/common/src/test/java/org/apache/sqoop/json/TestFrameworkBean.java index e667755..5cc110a 100644 --- a/common/src/test/java/org/apache/sqoop/json/TestFrameworkBean.java +++ b/common/src/test/java/org/apache/sqoop/json/TestFrameworkBean.java @@ -34,31 +34,31 @@ import static org.junit.Assert.*; */ public class TestFrameworkBean { -// /** -// * Test that by JSON serialization followed by deserialization we will get -// * equal framework object. -// */ -// @Test -// public void testSerialization() { -// MFramework framework = getFramework(); -// -// // Serialize it to JSON object -// FrameworkBean bean = new FrameworkBean(framework, getResourceBundle()); -// JSONObject json = bean.extract(false); -// -// // "Move" it across network in text form -// String string = json.toJSONString(); -// -// // Retrieved transferred object -// JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); -// FrameworkBean retrievedBean = new FrameworkBean(); -// retrievedBean.restore(retrievedJson); -// -// assertEquals(framework, retrievedBean.getFramework()); -// -// ResourceBundle retrievedBundle = retrievedBean.getResourceBundle(); -// assertEquals("a", retrievedBundle.getString("a")); -// assertEquals("b", retrievedBundle.getString("b")); -// } + /** + * Test that by JSON serialization followed by deserialization we will get + * equal framework object. + */ + @Test + public void testSerialization() { + MFramework framework = getFramework(); + + // Serialize it to JSON object + FrameworkBean bean = new FrameworkBean(framework, getResourceBundle()); + JSONObject json = bean.extract(false); + + // "Move" it across network in text form + String string = json.toJSONString(); + + // Retrieved transferred object + JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); + FrameworkBean retrievedBean = new FrameworkBean(); + retrievedBean.restore(retrievedJson); + + assertEquals(framework, retrievedBean.getFramework()); + + ResourceBundle retrievedBundle = retrievedBean.getResourceBundle(); + assertEquals("a", retrievedBundle.getString("a")); + assertEquals("b", retrievedBundle.getString("b")); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestJobBean.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/json/TestJobBean.java b/common/src/test/java/org/apache/sqoop/json/TestJobBean.java index 8638408..3106d39 100644 --- a/common/src/test/java/org/apache/sqoop/json/TestJobBean.java +++ b/common/src/test/java/org/apache/sqoop/json/TestJobBean.java @@ -17,62 +17,72 @@ */ package org.apache.sqoop.json; -//import org.apache.sqoop.model.MJob; -//import org.apache.sqoop.model.MStringInput; -//import org.json.simple.JSONObject; -//import org.json.simple.JSONValue; -//import org.json.simple.parser.ParseException; -//import org.junit.Test; -// -//import java.util.Date; -// -//import static junit.framework.Assert.assertEquals; -//import static org.apache.sqoop.json.TestUtil.getJob; +import org.apache.sqoop.common.Direction; +import org.apache.sqoop.model.MJob; +import org.apache.sqoop.model.MStringInput; +import org.json.simple.JSONObject; +import org.json.simple.JSONValue; +import org.json.simple.parser.ParseException; +import org.junit.Test; + +import java.util.Date; + +import static junit.framework.Assert.assertEquals; +import static org.apache.sqoop.json.TestUtil.getJob; /** * */ public class TestJobBean { -// @Test -// public void testSerialization() throws ParseException { -// Date created = new Date(); -// Date updated = new Date(); -// MJob job = getJob("ahoj", MJob.Type.IMPORT); -// job.setName("The big job"); -// job.setPersistenceId(666); -// job.setCreationDate(created); -// job.setLastUpdateDate(updated); -// job.setEnabled(false); -// -// // Fill some data at the beginning -// MStringInput input = (MStringInput) job.getFromPart().getForms() -// .get(0).getInputs().get(0); -// input.setValue("Hi there!"); -// -// // Serialize it to JSON object -// JobBean bean = new JobBean(job); -// JSONObject json = bean.extract(false); -// -// // "Move" it across network in text form -// String string = json.toJSONString(); -// -// // Retrieved transferred object -// JSONObject retrievedJson = (JSONObject)JSONValue.parseWithException(string); -// JobBean retrievedBean = new JobBean(); -// retrievedBean.restore(retrievedJson); -// MJob target = retrievedBean.getJobs().get(0); -// -// // Check id and name -// assertEquals(666, target.getPersistenceId()); -// assertEquals(MJob.Type.IMPORT, target.getType()); -// assertEquals("The big job", target.getName()); -// assertEquals(created, target.getCreationDate()); -// assertEquals(updated, target.getLastUpdateDate()); -// assertEquals(false, target.getEnabled()); -// -// // Test that value was correctly moved -// MStringInput targetInput = (MStringInput) target.getFromPart() -// .getForms().get(0).getInputs().get(0); -// assertEquals("Hi there!", targetInput.getValue()); -// } + @Test + public void testSerialization() throws ParseException { + Date created = new Date(); + Date updated = new Date(); + MJob job = getJob("ahoj"); + job.setName("The big job"); + job.setPersistenceId(666); + job.setCreationDate(created); + job.setLastUpdateDate(updated); + job.setEnabled(false); + + // Fill some data at the beginning + MStringInput input = (MStringInput) job.getConnectorPart(Direction.FROM) + .getForms().get(0).getInputs().get(0); + input.setValue("Hi there!"); + input = (MStringInput) job.getConnectorPart(Direction.TO) + .getForms().get(0).getInputs().get(0); + input.setValue("Hi there again!"); + + // Serialize it to JSON object + JobBean bean = new JobBean(job); + JSONObject json = bean.extract(false); + + // "Move" it across network in text form + String string = json.toJSONString(); + + // Retrieved transferred object + JSONObject retrievedJson = (JSONObject)JSONValue.parseWithException(string); + JobBean retrievedBean = new JobBean(); + retrievedBean.restore(retrievedJson); + MJob target = retrievedBean.getJobs().get(0); + + // Check id and name + assertEquals(666, target.getPersistenceId()); + assertEquals(target.getConnectionId(Direction.FROM), 1); + assertEquals(target.getConnectionId(Direction.TO), 2); + assertEquals(target.getConnectorId(Direction.FROM), 1); + assertEquals(target.getConnectorId(Direction.TO), 2); + assertEquals("The big job", target.getName()); + assertEquals(created, target.getCreationDate()); + assertEquals(updated, target.getLastUpdateDate()); + assertEquals(false, target.getEnabled()); + + // Test that value was correctly moved + MStringInput targetInput = (MStringInput) target.getConnectorPart(Direction.FROM) + .getForms().get(0).getInputs().get(0); + assertEquals("Hi there!", targetInput.getValue()); + targetInput = (MStringInput) target.getConnectorPart(Direction.TO) + .getForms().get(0).getInputs().get(0); + assertEquals("Hi there again!", targetInput.getValue()); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestSchemaBean.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/json/TestSchemaBean.java b/common/src/test/java/org/apache/sqoop/json/TestSchemaBean.java index ce107a8..5daab76 100644 --- a/common/src/test/java/org/apache/sqoop/json/TestSchemaBean.java +++ b/common/src/test/java/org/apache/sqoop/json/TestSchemaBean.java @@ -29,24 +29,24 @@ import org.json.simple.JSONValue; * as a means of transfer. */ public class TestSchemaBean extends TestSchemaSerialization { -// -// /** -// * Override the transfer method to use the SchemaBean. -// * -// * @param schema -// * @return -// */ -// @Override -// protected Schema transfer(Schema schema) { -// SchemaBean extractBean = new SchemaBean(schema); -// JSONObject extractJson = extractBean.extract(true); -// -// String transferredString = extractJson.toJSONString(); -// -// JSONObject restoreJson = (JSONObject) JSONValue.parse(transferredString); -// SchemaBean restoreBean = new SchemaBean(); -// restoreBean.restore(restoreJson); -// -// return restoreBean.getSchema(); -// } + + /** + * Override the transfer method to use the SchemaBean. + * + * @param schema + * @return + */ + @Override + protected Schema transfer(Schema schema) { + SchemaBean extractBean = new SchemaBean(schema); + JSONObject extractJson = extractBean.extract(true); + + String transferredString = extractJson.toJSONString(); + + JSONObject restoreJson = (JSONObject) JSONValue.parse(transferredString); + SchemaBean restoreBean = new SchemaBean(); + restoreBean.restore(restoreJson); + + return restoreBean.getSchema(); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestUtil.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/json/TestUtil.java b/common/src/test/java/org/apache/sqoop/json/TestUtil.java index d3e118b..a9aa233 100644 --- a/common/src/test/java/org/apache/sqoop/json/TestUtil.java +++ b/common/src/test/java/org/apache/sqoop/json/TestUtil.java @@ -17,6 +17,7 @@ */ package org.apache.sqoop.json; +import org.apache.sqoop.common.Direction; import org.apache.sqoop.model.MConnection; import org.apache.sqoop.model.MConnectionForms; import org.apache.sqoop.model.MConnector; @@ -38,115 +39,108 @@ import java.util.ResourceBundle; * */ public class TestUtil { -// public static MConnector getConnector(String name) { -// return new MConnector(name, name + ".class", "1.0-test", -// getConnectionForms(), getAllJobForms()); -// } -// -// public static MFramework getFramework() { -// return new MFramework(getConnectionForms(), getAllJobForms(), "1"); -// } -// -// public static MConnection getConnection(String name) { -// return new MConnection(1, -// getConnector(name).getConnectionForms(), -// getFramework().getConnectionForms() -// ); -// } -// -// public static MJob getJob(String name, MJob.Type type) { -// return new MJob(1, 1, -// type, -// getConnector(name).getJobForms(type), -// getFramework().getJobForms(type) -// ); -// } -// -// public static MConnectionForms getConnectionForms() { -// List<MInput<?>> inputs; -// MStringInput input; -// MForm form; -// List<MForm> connectionForms = new ArrayList<MForm>(); -// inputs = new ArrayList<MInput<?>>(); -// -// input = new MStringInput("url", false, (short) 10); -// input.setPersistenceId(1); -// inputs.add(input); -// -// input = new MStringInput("username", false, (short) 10); -// input.setPersistenceId(2); -// input.setValue("test"); -// inputs.add(input); -// -// input = new MStringInput("password", true, (short) 10); -// input.setPersistenceId(3); -// input.setValue("test"); -// inputs.add(input); -// -// form = new MForm("connection", inputs); -// form.setPersistenceId(10); -// connectionForms.add(form); -// -// return new MConnectionForms(connectionForms); -// } -// -// public static MJobForms getJobForms(MJob.Type type) { -// List<MInput<?>> inputs; -// MStringInput input; -// MForm form; -// List<MForm> jobForms = new ArrayList<MForm>(); -// -// inputs = new ArrayList<MInput<?>>(); -// -// input = new MStringInput("A", false, (short) 10); -// input.setPersistenceId(4); -// inputs.add(input); -// -// input = new MStringInput("B", false, (short) 10); -// input.setPersistenceId(5); -// inputs.add(input); -// -// input = new MStringInput("C", false, (short) 10); -// input.setPersistenceId(6); -// inputs.add(input); -// -// form = new MForm("Z", inputs); -// form.setPersistenceId(11); -// jobForms.add(form); -// -// inputs = new ArrayList<MInput<?>>(); -// -// input = new MStringInput("D", false, (short) 10); -// input.setPersistenceId(7); -// inputs.add(input); -// -// input = new MStringInput("E", false, (short) 10); -// input.setPersistenceId(8); -// inputs.add(input); -// -// input = new MStringInput("F", false, (short) 10); -// input.setPersistenceId(9); -// inputs.add(input); -// -// form = new MForm("connection", inputs); -// form.setPersistenceId(12); -// jobForms.add(form); -// -// return new MJobForms(type, jobForms); -// } -// -// public static List<MJobForms> getAllJobForms() { -// List<MJobForms> jobs = new ArrayList<MJobForms>(); -// jobs.add(getJobForms(MJob.Type.IMPORT)); -// -// return jobs; -// } -// -// public static ResourceBundle getResourceBundle() { -// Map<String, Object> map = new HashMap<String, Object>(); -// map.put("a", "a"); -// map.put("b", "b"); -// -// return new MapResourceBundle(map); -// } + public static MConnector getConnector(String name) { + return new MConnector(name, name + ".class", "1.0-test", + getConnectionForms(), getJobForms(), getJobForms()); + } + + public static MFramework getFramework() { + return new MFramework(getConnectionForms(), getJobForms(), "1"); + } + + public static MConnection getConnection(String name) { + return new MConnection(1, + getConnector(name).getConnectionForms(), + getFramework().getConnectionForms() + ); + } + + public static MJob getJob(String name) { + return new MJob(1, 2, 1, 2, + getConnector(name).getJobForms(Direction.FROM), + getConnector(name).getJobForms(Direction.TO), + getFramework().getJobForms() + ); + } + + public static MConnectionForms getConnectionForms() { + List<MInput<?>> inputs; + MStringInput input; + MForm form; + List<MForm> connectionForms = new ArrayList<MForm>(); + inputs = new ArrayList<MInput<?>>(); + + input = new MStringInput("url", false, (short) 10); + input.setPersistenceId(1); + inputs.add(input); + + input = new MStringInput("username", false, (short) 10); + input.setPersistenceId(2); + input.setValue("test"); + inputs.add(input); + + input = new MStringInput("password", true, (short) 10); + input.setPersistenceId(3); + input.setValue("test"); + inputs.add(input); + + form = new MForm("connection", inputs); + form.setPersistenceId(10); + connectionForms.add(form); + + return new MConnectionForms(connectionForms); + } + + public static MJobForms getJobForms() { + List<MInput<?>> inputs; + MStringInput input; + MForm form; + List<MForm> jobForms = new ArrayList<MForm>(); + + inputs = new ArrayList<MInput<?>>(); + + input = new MStringInput("A", false, (short) 10); + input.setPersistenceId(4); + inputs.add(input); + + input = new MStringInput("B", false, (short) 10); + input.setPersistenceId(5); + inputs.add(input); + + input = new MStringInput("C", false, (short) 10); + input.setPersistenceId(6); + inputs.add(input); + + form = new MForm("Z", inputs); + form.setPersistenceId(11); + jobForms.add(form); + + inputs = new ArrayList<MInput<?>>(); + + input = new MStringInput("D", false, (short) 10); + input.setPersistenceId(7); + inputs.add(input); + + input = new MStringInput("E", false, (short) 10); + input.setPersistenceId(8); + inputs.add(input); + + input = new MStringInput("F", false, (short) 10); + input.setPersistenceId(9); + inputs.add(input); + + form = new MForm("connection", inputs); + form.setPersistenceId(12); + jobForms.add(form); + + return new MJobForms(jobForms); + } + + public static ResourceBundle getResourceBundle() { + Map<String, Object> map = new HashMap<String, Object>(); + map.put("a", "a"); + map.put("b", "b"); + + return new MapResourceBundle(map); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/TestValidationBean.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/json/TestValidationBean.java b/common/src/test/java/org/apache/sqoop/json/TestValidationBean.java index 704d55b..c6086dd 100644 --- a/common/src/test/java/org/apache/sqoop/json/TestValidationBean.java +++ b/common/src/test/java/org/apache/sqoop/json/TestValidationBean.java @@ -17,6 +17,7 @@ */ package org.apache.sqoop.json; +import org.apache.sqoop.common.Direction; import org.apache.sqoop.validation.Status; import org.apache.sqoop.validation.Validation; import org.json.simple.JSONObject; @@ -32,76 +33,143 @@ import static org.junit.Assert.*; * */ public class TestValidationBean { -// -// @Test -// public void testSerialization() { -// // Serialize it to JSON object -// ValidationBean bean = new ValidationBean( -// getValidation(Status.FINE), -// getValidation(Status.UNACCEPTABLE) -// ); -// JSONObject json = bean.extract(false); -// -// // "Move" it across network in text form -// String string = json.toJSONString(); -// -// // Retrieved transferred object -// JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); -// ValidationBean retrievedBean = new ValidationBean(); -// retrievedBean.restore(retrievedJson); -// -// assertNull(retrievedBean.getId()); -// -// Validation.FormInput fa = new Validation.FormInput("f", "i"); -// Validation.FormInput fb = new Validation.FormInput("f2", "i2"); -// -// Validation connector = retrievedBean.getConnectorValidation(); -// assertEquals(Status.FINE, connector.getStatus()); -// assertEquals(2, connector.getMessages().size()); -// assertTrue(connector.getMessages().containsKey(fa)); -// assertEquals(new Validation.Message(Status.FINE, "d"), -// connector.getMessages().get(fa)); -// -// Validation framework = retrievedBean.getFrameworkValidation(); -// assertEquals(Status.UNACCEPTABLE, framework.getStatus()); -// assertEquals(2, framework.getMessages().size()); -// assertTrue(framework.getMessages().containsKey(fb)); -// assertEquals(new Validation.Message(Status.UNACCEPTABLE, "c"), -// framework.getMessages().get(fb)); -// } -// -// @Test -// public void testId() { -// // Serialize it to JSON object -// ValidationBean bean = new ValidationBean( -// getValidation(Status.FINE), -// getValidation(Status.FINE) -// ); -// bean.setId((long) 10); -// JSONObject json = bean.extract(false); -// -// // "Move" it across network in text form -// String string = json.toJSONString(); -// -// // Retrieved transferred object -// JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); -// ValidationBean retrievedBean = new ValidationBean(); -// retrievedBean.restore(retrievedJson); -// -// assertEquals((Long)(long) 10, retrievedBean.getId()); -// } -// -// public Validation getValidation(Status status) { -// Map<Validation.FormInput, Validation.Message> messages = -// new HashMap<Validation.FormInput, Validation.Message>(); -// -// messages.put( -// new Validation.FormInput("f", "i"), -// new Validation.Message(status, "d")); -// messages.put( -// new Validation.FormInput("f2", "i2"), -// new Validation.Message(status, "c")); -// -// return new Validation(status, messages); -// } + + @Test + public void testJobValidationBeanSerialization() { + // Serialize it to JSON object + JobValidationBean bean = new JobValidationBean( + getValidation(Status.FINE), + getValidation(Status.UNACCEPTABLE), + getValidation(Status.FINE) + ); + JSONObject json = bean.extract(false); + + // "Move" it across network in text form + String string = json.toJSONString(); + + // Retrieved transferred object + JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); + JobValidationBean retrievedBean = new JobValidationBean(); + retrievedBean.restore(retrievedJson); + + assertNull(retrievedBean.getId()); + + Validation.FormInput fa = new Validation.FormInput("f", "i"); + Validation.FormInput fb = new Validation.FormInput("f2", "i2"); + + Validation fromConnector = retrievedBean.getConnectorValidation(Direction.FROM); + assertEquals(Status.FINE, fromConnector.getStatus()); + assertEquals(2, fromConnector.getMessages().size()); + assertTrue(fromConnector.getMessages().containsKey(fa)); + assertEquals(new Validation.Message(Status.FINE, "d"), + fromConnector.getMessages().get(fa)); + + Validation toConnector = retrievedBean.getConnectorValidation(Direction.TO); + assertEquals(Status.FINE, toConnector.getStatus()); + assertEquals(2, toConnector.getMessages().size()); + assertTrue(toConnector.getMessages().containsKey(fa)); + assertEquals(new Validation.Message(Status.FINE, "d"), + toConnector.getMessages().get(fa)); + + Validation framework = retrievedBean.getFrameworkValidation(); + assertEquals(Status.UNACCEPTABLE, framework.getStatus()); + assertEquals(2, framework.getMessages().size()); + assertTrue(framework.getMessages().containsKey(fb)); + assertEquals(new Validation.Message(Status.UNACCEPTABLE, "c"), + framework.getMessages().get(fb)); + } + + @Test + public void testJobValidationBeanId() { + // Serialize it to JSON object + JobValidationBean bean = new JobValidationBean( + getValidation(Status.FINE), + getValidation(Status.FINE), + getValidation(Status.FINE) + ); + bean.setId((long) 10); + JSONObject json = bean.extract(false); + + // "Move" it across network in text form + String string = json.toJSONString(); + + // Retrieved transferred object + JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); + JobValidationBean retrievedBean = new JobValidationBean(); + retrievedBean.restore(retrievedJson); + + assertEquals((Long)(long) 10, retrievedBean.getId()); + } + + @Test + public void testConnectionValidationBeanSerialization() { + // Serialize it to JSON object + ConnectionValidationBean bean = new ConnectionValidationBean( + getValidation(Status.FINE), + getValidation(Status.UNACCEPTABLE) + ); + JSONObject json = bean.extract(false); + + // "Move" it across network in text form + String string = json.toJSONString(); + + // Retrieved transferred object + JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); + ConnectionValidationBean retrievedBean = new ConnectionValidationBean(); + retrievedBean.restore(retrievedJson); + + assertNull(retrievedBean.getId()); + + Validation.FormInput fa = new Validation.FormInput("f", "i"); + Validation.FormInput fb = new Validation.FormInput("f2", "i2"); + + Validation connector = retrievedBean.getConnectorValidation(); + assertEquals(Status.FINE, connector.getStatus()); + assertEquals(2, connector.getMessages().size()); + assertTrue(connector.getMessages().containsKey(fa)); + assertEquals(new Validation.Message(Status.FINE, "d"), + connector.getMessages().get(fa)); + + Validation framework = retrievedBean.getFrameworkValidation(); + assertEquals(Status.UNACCEPTABLE, framework.getStatus()); + assertEquals(2, framework.getMessages().size()); + assertTrue(framework.getMessages().containsKey(fb)); + assertEquals(new Validation.Message(Status.UNACCEPTABLE, "c"), + framework.getMessages().get(fb)); + } + + @Test + public void testConnectionValidationBeanId() { + // Serialize it to JSON object + ConnectionValidationBean bean = new ConnectionValidationBean( + getValidation(Status.FINE), + getValidation(Status.FINE) + ); + bean.setId((long) 10); + JSONObject json = bean.extract(false); + + // "Move" it across network in text form + String string = json.toJSONString(); + + // Retrieved transferred object + JSONObject retrievedJson = (JSONObject) JSONValue.parse(string); + ConnectionValidationBean retrievedBean = new ConnectionValidationBean(); + retrievedBean.restore(retrievedJson); + + assertEquals((Long)(long) 10, retrievedBean.getId()); + } + + public Validation getValidation(Status status) { + Map<Validation.FormInput, Validation.Message> messages = + new HashMap<Validation.FormInput, Validation.Message>(); + + messages.put( + new Validation.FormInput("f", "i"), + new Validation.Message(status, "d")); + messages.put( + new Validation.FormInput("f2", "i2"), + new Validation.Message(status, "c")); + + return new Validation(status, messages); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/util/TestFormSerialization.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/json/util/TestFormSerialization.java b/common/src/test/java/org/apache/sqoop/json/util/TestFormSerialization.java index 9cd7305..c4223ec 100644 --- a/common/src/test/java/org/apache/sqoop/json/util/TestFormSerialization.java +++ b/common/src/test/java/org/apache/sqoop/json/util/TestFormSerialization.java @@ -42,116 +42,116 @@ import static org.junit.Assert.assertNotNull; */ public class TestFormSerialization { -// @Test -// public void testAllDataTypes() { -// // Inserted values -// Map<String, String> map = new HashMap<String, String>(); -// map.put("A", "B"); -// -// // Fill form with all values -// MForm form = getForm(); -// form.getStringInput("String").setValue("A"); -// form.getMapInput("Map").setValue(map); -// form.getIntegerInput("Integer").setValue(1); -// form.getBooleanInput("Boolean").setValue(true); -// form.getEnumInput("Enum").setValue("YES"); -// -// // Serialize that into JSON -// JSONObject jsonObject = FormSerialization.extractForm(form, false); -// assertNotNull(jsonObject); -// -// // Exchange the data on string level -// String serializedJson = jsonObject.toJSONString(); -// JSONObject retrievedJson = (JSONObject) JSONValue.parse(serializedJson); -// -// // And retrieve back from JSON representation -// MForm retrieved = FormSerialization.restoreForm(retrievedJson); -// -// // Verify all expected values -// assertEquals("A", retrieved.getStringInput("String").getValue()); -// assertEquals(map, retrieved.getMapInput("Map").getValue()); -// assertEquals(1, (int)retrieved.getIntegerInput("Integer").getValue()); -// assertEquals(true, retrieved.getBooleanInput("Boolean").getValue()); -// assertEquals("YES", retrieved.getEnumInput("Enum").getValue()); -// } -// -// @Test -// public void testMapDataType() { -// MForm form = getMapForm(); -// -// // Inserted values -// Map<String, String> map = new HashMap<String, String>(); -// map.put("A", "B"); -// form.getMapInput("Map").setValue(map); -// -// // Serialize -// JSONObject jsonObject = FormSerialization.extractForm(form, false); -// String serializedJson = jsonObject.toJSONString(); -// -// // Deserialize -// JSONObject retrievedJson = (JSONObject) JSONValue.parse(serializedJson); -// MForm retrieved = FormSerialization.restoreForm(retrievedJson); -// assertEquals(map, retrieved.getMapInput("Map").getValue()); -// } -// -// @Test(expected=SqoopException.class) -// public void testMapDataTypeException() { -// MForm form = getMapForm(); -// -// // Inserted values -// Map<String, String> map = new HashMap<String, String>(); -// map.put("A", "B"); -// form.getMapInput("Map").setValue(map); -// -// // Serialize -// JSONObject jsonObject = FormSerialization.extractForm(form, false); -// String serializedJson = jsonObject.toJSONString(); -// -// // Replace map value with a fake string to force exception -// String badSerializedJson = serializedJson.replace("{\"A\":\"B\"}", "\"nonsensical string\""); -// System.out.println(badSerializedJson); -// JSONObject retrievedJson = (JSONObject) JSONValue.parse(badSerializedJson); -// FormSerialization.restoreForm(retrievedJson); -// } -// -// protected MForm getMapForm() { -// List<MInput<?>> inputs; -// MInput input; -// -// inputs = new LinkedList<MInput<?>>(); -// -// input = new MMapInput("Map", false); -// inputs.add(input); -// -// return new MForm("f", inputs); -// } -// -// /** -// * Return form with all data types. -// * -// * @return -// */ -// protected MForm getForm() { -// List<MInput<?>> inputs; -// MInput input; -// -// inputs = new LinkedList<MInput<?>>(); -// -// input = new MStringInput("String", false, (short)30); -// inputs.add(input); -// -// input = new MMapInput("Map", false); -// inputs.add(input); -// -// input = new MIntegerInput("Integer", false); -// inputs.add(input); -// -// input = new MBooleanInput("Boolean", false); -// inputs.add(input); -// -// input = new MEnumInput("Enum", false, new String[] {"YES", "NO"}); -// inputs.add(input); -// -// return new MForm("f", inputs); -// } + @Test + public void testAllDataTypes() { + // Inserted values + Map<String, String> map = new HashMap<String, String>(); + map.put("A", "B"); + + // Fill form with all values + MForm form = getForm(); + form.getStringInput("String").setValue("A"); + form.getMapInput("Map").setValue(map); + form.getIntegerInput("Integer").setValue(1); + form.getBooleanInput("Boolean").setValue(true); + form.getEnumInput("Enum").setValue("YES"); + + // Serialize that into JSON + JSONObject jsonObject = FormSerialization.extractForm(form, false); + assertNotNull(jsonObject); + + // Exchange the data on string level + String serializedJson = jsonObject.toJSONString(); + JSONObject retrievedJson = (JSONObject) JSONValue.parse(serializedJson); + + // And retrieve back from JSON representation + MForm retrieved = FormSerialization.restoreForm(retrievedJson); + + // Verify all expected values + assertEquals("A", retrieved.getStringInput("String").getValue()); + assertEquals(map, retrieved.getMapInput("Map").getValue()); + assertEquals(1, (int)retrieved.getIntegerInput("Integer").getValue()); + assertEquals(true, retrieved.getBooleanInput("Boolean").getValue()); + assertEquals("YES", retrieved.getEnumInput("Enum").getValue()); + } + + @Test + public void testMapDataType() { + MForm form = getMapForm(); + + // Inserted values + Map<String, String> map = new HashMap<String, String>(); + map.put("A", "B"); + form.getMapInput("Map").setValue(map); + + // Serialize + JSONObject jsonObject = FormSerialization.extractForm(form, false); + String serializedJson = jsonObject.toJSONString(); + + // Deserialize + JSONObject retrievedJson = (JSONObject) JSONValue.parse(serializedJson); + MForm retrieved = FormSerialization.restoreForm(retrievedJson); + assertEquals(map, retrieved.getMapInput("Map").getValue()); + } + + @Test(expected=SqoopException.class) + public void testMapDataTypeException() { + MForm form = getMapForm(); + + // Inserted values + Map<String, String> map = new HashMap<String, String>(); + map.put("A", "B"); + form.getMapInput("Map").setValue(map); + + // Serialize + JSONObject jsonObject = FormSerialization.extractForm(form, false); + String serializedJson = jsonObject.toJSONString(); + + // Replace map value with a fake string to force exception + String badSerializedJson = serializedJson.replace("{\"A\":\"B\"}", "\"nonsensical string\""); + System.out.println(badSerializedJson); + JSONObject retrievedJson = (JSONObject) JSONValue.parse(badSerializedJson); + FormSerialization.restoreForm(retrievedJson); + } + + protected MForm getMapForm() { + List<MInput<?>> inputs; + MInput input; + + inputs = new LinkedList<MInput<?>>(); + + input = new MMapInput("Map", false); + inputs.add(input); + + return new MForm("f", inputs); + } + + /** + * Return form with all data types. + * + * @return + */ + protected MForm getForm() { + List<MInput<?>> inputs; + MInput input; + + inputs = new LinkedList<MInput<?>>(); + + input = new MStringInput("String", false, (short)30); + inputs.add(input); + + input = new MMapInput("Map", false); + inputs.add(input); + + input = new MIntegerInput("Integer", false); + inputs.add(input); + + input = new MBooleanInput("Boolean", false); + inputs.add(input); + + input = new MEnumInput("Enum", false, new String[] {"YES", "NO"}); + inputs.add(input); + + return new MForm("f", inputs); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java b/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java index e36308d..ab5bbd4 100644 --- a/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java +++ b/common/src/test/java/org/apache/sqoop/json/util/TestSchemaSerialization.java @@ -43,135 +43,135 @@ import static org.junit.Assert.assertEquals; */ public class TestSchemaSerialization { -// @Test -// public void testArray() { -// Schema array = new Schema("array").addColumn(new Array("a", new Decimal())); -// transferAndAssert(array); -// } -// -// @Test -// public void testBinary() { -// Schema binary = new Schema("b").addColumn(new Binary("A", 100L)); -// transferAndAssert(binary); -// } -// -// @Test -// public void testBit() { -// Schema bit = new Schema("b").addColumn(new Bit("B")); -// transferAndAssert(bit); -// } -// -// @Test -// public void testDate() { -// Schema date = new Schema("d").addColumn(new Date("d")); -// transferAndAssert(date); -// } -// -// @Test -// public void testDateTime() { -// Schema dateTime = new Schema("dt").addColumn(new DateTime("dt", Boolean.FALSE, Boolean.TRUE)); -// transferAndAssert(dateTime); -// } -// -// @Test -// public void testDecimal() { -// Schema decimal = new Schema("d").addColumn(new Decimal("d", 12L, 15L)); -// transferAndAssert(decimal); -// } -// -// @Test -// public void testEnum() { -// Schema e = new Schema("e").addColumn(new Enum("e", new Text())); -// transferAndAssert(e); -// } -// -// @Test -// public void testFixedPoint() { -// Schema f = new Schema("f").addColumn(new FixedPoint("fp", 4L, Boolean.FALSE)); -// transferAndAssert(f); -// } -// -// @Test -// public void testFloatingPoint() { -// Schema fp = new Schema("fp").addColumn(new FloatingPoint("k", 4L)); -// transferAndAssert(fp); -// } -// -// @Test -// public void testMap() { -// Schema m = new Schema("m").addColumn(new Map("m", new Text(), new Decimal())); -// transferAndAssert(m); -// } -// -// @Test -// public void testSet() { -// Schema s = new Schema("s").addColumn(new Set("b", new Binary())); -// transferAndAssert(s); -// } -// -// @Test -// public void testText() { -// Schema t = new Schema("t").addColumn(new Text("x", 10L)); -// transferAndAssert(t); -// } -// -// @Test -// public void testTime() { -// Schema t = new Schema("t").addColumn(new Time("t", Boolean.FALSE)); -// transferAndAssert(t); -// } -// -// @Test -// public void testUnsupported() { -// Schema t = new Schema("t").addColumn(new Unsupported("u", 4L)); -// transferAndAssert(t); -// } -// @Test -// public void testNullable() { -// Schema nullable = new Schema("n").addColumn(new Text("x", Boolean.FALSE)); -// transferAndAssert(nullable); -// } -// -// @Test -// public void testAllTypes() { -// Schema allTypes = new Schema("all-types") -// .addColumn(new Array("a", new Text())) -// .addColumn(new Binary("b")) -// .addColumn(new Bit("c")) -// .addColumn(new Date("d")) -// .addColumn(new DateTime("e")) -// .addColumn(new Decimal("f")) -// .addColumn(new Enum("g", new Text())) -// .addColumn(new FixedPoint("h")) -// .addColumn(new FloatingPoint("i")) -// .addColumn(new Map("j", new Text(), new Text())) -// .addColumn(new Set("k", new Text())) -// .addColumn(new Text("l")) -// .addColumn(new Time("m")) -// .addColumn(new Unsupported("u")) -// ; -// transferAndAssert(allTypes); -// } -// -// @Test -// public void testComplex() { -// Schema complex = new Schema("complex") -// .addColumn(new Map(new Array(new Enum(new Text())), new Set(new Array(new Text()))).setName("a")) -// ; -// transferAndAssert(complex); -// } -// -// private void transferAndAssert(Schema schema) { -// Schema transferred = transfer(schema); -// assertEquals(schema, transferred); -// } -// -// protected Schema transfer(Schema schema) { -// JSONObject extractJson = SchemaSerialization.extractSchema(schema); -// -// String transferredString = extractJson.toJSONString(); -// -// JSONObject restoreJson = (JSONObject) JSONValue.parse(transferredString); -// return SchemaSerialization.restoreSchemna(restoreJson); -// } + @Test + public void testArray() { + Schema array = new Schema("array").addColumn(new Array("a", new Decimal())); + transferAndAssert(array); + } + + @Test + public void testBinary() { + Schema binary = new Schema("b").addColumn(new Binary("A", 100L)); + transferAndAssert(binary); + } + + @Test + public void testBit() { + Schema bit = new Schema("b").addColumn(new Bit("B")); + transferAndAssert(bit); + } + + @Test + public void testDate() { + Schema date = new Schema("d").addColumn(new Date("d")); + transferAndAssert(date); + } + + @Test + public void testDateTime() { + Schema dateTime = new Schema("dt").addColumn(new DateTime("dt", Boolean.FALSE, Boolean.TRUE)); + transferAndAssert(dateTime); + } + + @Test + public void testDecimal() { + Schema decimal = new Schema("d").addColumn(new Decimal("d", 12L, 15L)); + transferAndAssert(decimal); + } + + @Test + public void testEnum() { + Schema e = new Schema("e").addColumn(new Enum("e", new Text())); + transferAndAssert(e); + } + + @Test + public void testFixedPoint() { + Schema f = new Schema("f").addColumn(new FixedPoint("fp", 4L, Boolean.FALSE)); + transferAndAssert(f); + } + + @Test + public void testFloatingPoint() { + Schema fp = new Schema("fp").addColumn(new FloatingPoint("k", 4L)); + transferAndAssert(fp); + } + + @Test + public void testMap() { + Schema m = new Schema("m").addColumn(new Map("m", new Text(), new Decimal())); + transferAndAssert(m); + } + + @Test + public void testSet() { + Schema s = new Schema("s").addColumn(new Set("b", new Binary())); + transferAndAssert(s); + } + + @Test + public void testText() { + Schema t = new Schema("t").addColumn(new Text("x", 10L)); + transferAndAssert(t); + } + + @Test + public void testTime() { + Schema t = new Schema("t").addColumn(new Time("t", Boolean.FALSE)); + transferAndAssert(t); + } + + @Test + public void testUnsupported() { + Schema t = new Schema("t").addColumn(new Unsupported("u", 4L)); + transferAndAssert(t); + } + @Test + public void testNullable() { + Schema nullable = new Schema("n").addColumn(new Text("x", Boolean.FALSE)); + transferAndAssert(nullable); + } + + @Test + public void testAllTypes() { + Schema allTypes = new Schema("all-types") + .addColumn(new Array("a", new Text())) + .addColumn(new Binary("b")) + .addColumn(new Bit("c")) + .addColumn(new Date("d")) + .addColumn(new DateTime("e")) + .addColumn(new Decimal("f")) + .addColumn(new Enum("g", new Text())) + .addColumn(new FixedPoint("h")) + .addColumn(new FloatingPoint("i")) + .addColumn(new Map("j", new Text(), new Text())) + .addColumn(new Set("k", new Text())) + .addColumn(new Text("l")) + .addColumn(new Time("m")) + .addColumn(new Unsupported("u")) + ; + transferAndAssert(allTypes); + } + + @Test + public void testComplex() { + Schema complex = new Schema("complex") + .addColumn(new Map(new Array(new Enum(new Text())), new Set(new Array(new Text()))).setName("a")) + ; + transferAndAssert(complex); + } + + private void transferAndAssert(Schema schema) { + Schema transferred = transfer(schema); + assertEquals(schema, transferred); + } + + protected Schema transfer(Schema schema) { + JSONObject extractJson = SchemaSerialization.extractSchema(schema); + + String transferredString = extractJson.toJSONString(); + + JSONObject restoreJson = (JSONObject) JSONValue.parse(transferredString); + return SchemaSerialization.restoreSchemna(restoreJson); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java b/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java index 6c76347..08dfa7b 100644 --- a/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java +++ b/common/src/test/java/org/apache/sqoop/model/TestFormUtils.java @@ -32,218 +32,218 @@ import java.util.Map; */ public class TestFormUtils extends TestCase { -// public void testToForms() { -// Config config = new Config(); -// config.aForm.a1 = "value"; -// -// List<MForm> formsByInstance = FormUtils.toForms(config); -// assertEquals(getForms(), formsByInstance); -// assertEquals("value", formsByInstance.get(0).getInputs().get(0).getValue()); -// -// List<MForm> formsByClass = FormUtils.toForms(Config.class); -// assertEquals(getForms(), formsByClass); -// -// List<MForm> formsByBoth = FormUtils.toForms(Config.class, config); -// assertEquals(getForms(), formsByBoth); -// assertEquals("value", formsByBoth.get(0).getInputs().get(0).getValue()); -// } -// -// public void testToFormsMissingAnnotation() { -// try { -// FormUtils.toForms(ConfigWithout.class); -// } catch(SqoopException ex) { -// assertEquals(ModelError.MODEL_003, ex.getErrorCode()); -// return; -// } -// -// fail("Correct exception wasn't thrown"); -// } -// -// public void testFailureOnPrimitiveType() { -// PrimitiveConfig config = new PrimitiveConfig(); -// -// try { -// FormUtils.toForms(config); -// fail("We were expecting exception for unsupported type."); -// } catch(SqoopException ex) { -// assertEquals(ModelError.MODEL_007, ex.getErrorCode()); -// } -// } -// -// public void testFillValues() { -// List<MForm> forms = getForms(); -// -// ((MStringInput)forms.get(0).getInputs().get(0)).setValue("value"); -// -// Config config = new Config(); -// -// FormUtils.fromForms(forms, config); -// assertEquals("value", config.aForm.a1); -// } -// -// public void testFillValuesObjectReuse() { -// List<MForm> forms = getForms(); -// -// ((MStringInput)forms.get(0).getInputs().get(0)).setValue("value"); -// -// Config config = new Config(); -// config.aForm.a2 = "x"; -// config.bForm.b1 = "y"; -// -// FormUtils.fromForms(forms, config); -// assertEquals("value", config.aForm.a1); -// assertNull(config.aForm.a2); -// assertNull(config.bForm.b2); -// assertNull(config.bForm.b2); -// } -// -// public void testApplyValidation() { -// Validation validation = getValidation(); -// List<MForm> forms = getForms(); -// -// FormUtils.applyValidation(forms, validation); -// -// assertEquals(Status.ACCEPTABLE, -// forms.get(0).getInputs().get(0).getValidationStatus()); -// assertEquals("e1", -// forms.get(0).getInputs().get(0).getValidationMessage()); -// -// assertEquals(Status.UNACCEPTABLE, -// forms.get(0).getInputs().get(1).getValidationStatus()); -// assertEquals("e2", -// forms.get(0).getInputs().get(1).getValidationMessage()); -// } -// -// public void testJson() { -// Config config = new Config(); -// config.aForm.a1 = "A"; -// config.bForm.b2 = "B"; -// config.cForm.intValue = 4; -// config.cForm.map.put("C", "D"); -// config.cForm.enumeration = Enumeration.X; -// -// String json = FormUtils.toJson(config); -// -// Config targetConfig = new Config(); -// -// // Old values from should be always removed -// targetConfig.aForm.a2 = "X"; -// targetConfig.bForm.b1 = "Y"; -// // Nulls in forms shouldn't be an issue either -// targetConfig.cForm = null; -// -// FormUtils.fillValues(json, targetConfig); -// -// assertEquals("A", targetConfig.aForm.a1); -// assertNull(targetConfig.aForm.a2); -// -// assertNull(targetConfig.bForm.b1); -// assertEquals("B", targetConfig.bForm.b2); -// -// assertEquals((Integer)4, targetConfig.cForm.intValue); -// assertEquals(1, targetConfig.cForm.map.size()); -// assertTrue(targetConfig.cForm.map.containsKey("C")); -// assertEquals("D", targetConfig.cForm.map.get("C")); -// assertEquals(Enumeration.X, targetConfig.cForm.enumeration); -// } -// -// protected Validation getValidation() { -// Map<Validation.FormInput, Validation.Message> messages -// = new HashMap<Validation.FormInput, Validation.Message>(); -// -// messages.put( -// new Validation.FormInput("aForm", "a1"), -// new Validation.Message(Status.ACCEPTABLE, "e1")); -// messages.put( -// new Validation.FormInput("aForm", "a2"), -// new Validation.Message(Status.UNACCEPTABLE, "e2")); -// -// return new Validation(Status.UNACCEPTABLE, messages); -// } -// -// /** -// * Form structure that corresponds to Config class declared below -// * @return Form structure -// */ -// protected List<MForm> getForms() { -// List<MForm> ret = new LinkedList<MForm>(); -// -// List<MInput<?>> inputs; -// -// // Form A -// inputs = new LinkedList<MInput<?>>(); -// inputs.add(new MStringInput("aForm.a1", false, (short)30)); -// inputs.add(new MStringInput("aForm.a2", true, (short)-1)); -// ret.add(new MForm("aForm", inputs)); -// -// // Form B -// inputs = new LinkedList<MInput<?>>(); -// inputs.add(new MStringInput("bForm.b1", false, (short)2)); -// inputs.add(new MStringInput("bForm.b2", false, (short)3)); -// ret.add(new MForm("bForm", inputs)); -// -// // Form C -// inputs = new LinkedList<MInput<?>>(); -// inputs.add(new MIntegerInput("cForm.intValue", false)); -// inputs.add(new MMapInput("cForm.map", false)); -// inputs.add(new MEnumInput("cForm.enumeration", false, new String[]{"X", "Y"})); -// ret.add(new MForm("cForm", inputs)); -// -// return ret; -// } -// -// @ConfigurationClass -// public static class Config { -// -// public Config() { -// aForm = new AForm(); -// bForm = new BForm(); -// cForm = new CForm(); -// } -// -// @Form AForm aForm; -// @Form BForm bForm; -// @Form CForm cForm; -// } -// -// @ConfigurationClass -// public static class PrimitiveConfig { -// @Form DForm dForm; -// } -// -// @FormClass -// public static class AForm { -// @Input(size = 30) String a1; -// @Input(sensitive = true) String a2; -// } -// -// @FormClass -// public static class BForm { -// @Input(size = 2) String b1; -// @Input(size = 3) String b2; -// } -// -// @FormClass -// public static class CForm { -// @Input Integer intValue; -// @Input Map<String, String> map; -// @Input Enumeration enumeration; -// -// public CForm() { -// map = new HashMap<String, String>(); -// } -// } -// -// @FormClass -// public static class DForm { -// @Input int value; -// } -// -// public static class ConfigWithout { -// } -// -// enum Enumeration { -// X, -// Y, -// } + public void testToForms() { + Config config = new Config(); + config.aForm.a1 = "value"; + + List<MForm> formsByInstance = FormUtils.toForms(config); + assertEquals(getForms(), formsByInstance); + assertEquals("value", formsByInstance.get(0).getInputs().get(0).getValue()); + + List<MForm> formsByClass = FormUtils.toForms(Config.class); + assertEquals(getForms(), formsByClass); + + List<MForm> formsByBoth = FormUtils.toForms(Config.class, config); + assertEquals(getForms(), formsByBoth); + assertEquals("value", formsByBoth.get(0).getInputs().get(0).getValue()); + } + + public void testToFormsMissingAnnotation() { + try { + FormUtils.toForms(ConfigWithout.class); + } catch(SqoopException ex) { + assertEquals(ModelError.MODEL_003, ex.getErrorCode()); + return; + } + + fail("Correct exception wasn't thrown"); + } + + public void testFailureOnPrimitiveType() { + PrimitiveConfig config = new PrimitiveConfig(); + + try { + FormUtils.toForms(config); + fail("We were expecting exception for unsupported type."); + } catch(SqoopException ex) { + assertEquals(ModelError.MODEL_007, ex.getErrorCode()); + } + } + + public void testFillValues() { + List<MForm> forms = getForms(); + + ((MStringInput)forms.get(0).getInputs().get(0)).setValue("value"); + + Config config = new Config(); + + FormUtils.fromForms(forms, config); + assertEquals("value", config.aForm.a1); + } + + public void testFillValuesObjectReuse() { + List<MForm> forms = getForms(); + + ((MStringInput)forms.get(0).getInputs().get(0)).setValue("value"); + + Config config = new Config(); + config.aForm.a2 = "x"; + config.bForm.b1 = "y"; + + FormUtils.fromForms(forms, config); + assertEquals("value", config.aForm.a1); + assertNull(config.aForm.a2); + assertNull(config.bForm.b2); + assertNull(config.bForm.b2); + } + + public void testApplyValidation() { + Validation validation = getValidation(); + List<MForm> forms = getForms(); + + FormUtils.applyValidation(forms, validation); + + assertEquals(Status.ACCEPTABLE, + forms.get(0).getInputs().get(0).getValidationStatus()); + assertEquals("e1", + forms.get(0).getInputs().get(0).getValidationMessage()); + + assertEquals(Status.UNACCEPTABLE, + forms.get(0).getInputs().get(1).getValidationStatus()); + assertEquals("e2", + forms.get(0).getInputs().get(1).getValidationMessage()); + } + + public void testJson() { + Config config = new Config(); + config.aForm.a1 = "A"; + config.bForm.b2 = "B"; + config.cForm.intValue = 4; + config.cForm.map.put("C", "D"); + config.cForm.enumeration = Enumeration.X; + + String json = FormUtils.toJson(config); + + Config targetConfig = new Config(); + + // Old values from should be always removed + targetConfig.aForm.a2 = "X"; + targetConfig.bForm.b1 = "Y"; + // Nulls in forms shouldn't be an issue either + targetConfig.cForm = null; + + FormUtils.fillValues(json, targetConfig); + + assertEquals("A", targetConfig.aForm.a1); + assertNull(targetConfig.aForm.a2); + + assertNull(targetConfig.bForm.b1); + assertEquals("B", targetConfig.bForm.b2); + + assertEquals((Integer)4, targetConfig.cForm.intValue); + assertEquals(1, targetConfig.cForm.map.size()); + assertTrue(targetConfig.cForm.map.containsKey("C")); + assertEquals("D", targetConfig.cForm.map.get("C")); + assertEquals(Enumeration.X, targetConfig.cForm.enumeration); + } + + protected Validation getValidation() { + Map<Validation.FormInput, Validation.Message> messages + = new HashMap<Validation.FormInput, Validation.Message>(); + + messages.put( + new Validation.FormInput("aForm", "a1"), + new Validation.Message(Status.ACCEPTABLE, "e1")); + messages.put( + new Validation.FormInput("aForm", "a2"), + new Validation.Message(Status.UNACCEPTABLE, "e2")); + + return new Validation(Status.UNACCEPTABLE, messages); + } + + /** + * Form structure that corresponds to Config class declared below + * @return Form structure + */ + protected List<MForm> getForms() { + List<MForm> ret = new LinkedList<MForm>(); + + List<MInput<?>> inputs; + + // Form A + inputs = new LinkedList<MInput<?>>(); + inputs.add(new MStringInput("aForm.a1", false, (short)30)); + inputs.add(new MStringInput("aForm.a2", true, (short)-1)); + ret.add(new MForm("aForm", inputs)); + + // Form B + inputs = new LinkedList<MInput<?>>(); + inputs.add(new MStringInput("bForm.b1", false, (short)2)); + inputs.add(new MStringInput("bForm.b2", false, (short)3)); + ret.add(new MForm("bForm", inputs)); + + // Form C + inputs = new LinkedList<MInput<?>>(); + inputs.add(new MIntegerInput("cForm.intValue", false)); + inputs.add(new MMapInput("cForm.map", false)); + inputs.add(new MEnumInput("cForm.enumeration", false, new String[]{"X", "Y"})); + ret.add(new MForm("cForm", inputs)); + + return ret; + } + + @ConfigurationClass + public static class Config { + + public Config() { + aForm = new AForm(); + bForm = new BForm(); + cForm = new CForm(); + } + + @Form AForm aForm; + @Form BForm bForm; + @Form CForm cForm; + } + + @ConfigurationClass + public static class PrimitiveConfig { + @Form DForm dForm; + } + + @FormClass + public static class AForm { + @Input(size = 30) String a1; + @Input(sensitive = true) String a2; + } + + @FormClass + public static class BForm { + @Input(size = 2) String b1; + @Input(size = 3) String b2; + } + + @FormClass + public static class CForm { + @Input Integer intValue; + @Input Map<String, String> map; + @Input Enumeration enumeration; + + public CForm() { + map = new HashMap<String, String>(); + } + } + + @FormClass + public static class DForm { + @Input int value; + } + + public static class ConfigWithout { + } + + enum Enumeration { + X, + Y, + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java b/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java index 942a056..f3d4166 100644 --- a/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java +++ b/common/src/test/java/org/apache/sqoop/model/TestMAccountableEntity.java @@ -30,32 +30,32 @@ import org.junit.Test; */ public class TestMAccountableEntity { -// /** -// * Test for class initialization -// */ -// @Test -// public void testInitialization() { -// List<MForm> forms = new ArrayList<MForm>(); -// MIntegerInput input = new MIntegerInput("INTEGER-INPUT", false); -// List<MInput<?>> list = new ArrayList<MInput<?>>(); -// list.add(input); -// MForm form = new MForm("FORMNAME", list); -// forms.add(form); -// MAccountableEntity connection = new MConnection(123l, new MConnectionForms( -// forms), new MConnectionForms(forms)); -// // Initially creation date and last update date is same -// assertEquals(connection.getCreationDate(), connection.getLastUpdateDate()); -// Date testCreationDate = new Date(); -// Date testLastUpdateDate = new Date(); -// connection.setCreationUser("admin"); -// connection.setCreationDate(testCreationDate); -// connection.setLastUpdateUser("user"); -// connection.setLastUpdateDate(testLastUpdateDate); -// connection.setEnabled(false); -// assertEquals(testCreationDate, connection.getCreationDate()); -// assertEquals("admin", connection.getCreationUser()); -// assertEquals(testLastUpdateDate, connection.getLastUpdateDate()); -// assertEquals(false, connection.getEnabled()); -// assertEquals("user", connection.getLastUpdateUser()); -// } + /** + * Test for class initialization + */ + @Test + public void testInitialization() { + List<MForm> forms = new ArrayList<MForm>(); + MIntegerInput input = new MIntegerInput("INTEGER-INPUT", false); + List<MInput<?>> list = new ArrayList<MInput<?>>(); + list.add(input); + MForm form = new MForm("FORMNAME", list); + forms.add(form); + MAccountableEntity connection = new MConnection(123l, new MConnectionForms( + forms), new MConnectionForms(forms)); + // Initially creation date and last update date is same + assertEquals(connection.getCreationDate(), connection.getLastUpdateDate()); + Date testCreationDate = new Date(); + Date testLastUpdateDate = new Date(); + connection.setCreationUser("admin"); + connection.setCreationDate(testCreationDate); + connection.setLastUpdateUser("user"); + connection.setLastUpdateDate(testLastUpdateDate); + connection.setEnabled(false); + assertEquals(testCreationDate, connection.getCreationDate()); + assertEquals("admin", connection.getCreationUser()); + assertEquals(testLastUpdateDate, connection.getLastUpdateDate()); + assertEquals(false, connection.getEnabled()); + assertEquals("user", connection.getLastUpdateUser()); + } } http://git-wip-us.apache.org/repos/asf/sqoop/blob/3bb7ff83/common/src/test/java/org/apache/sqoop/model/TestMBooleanInput.java ---------------------------------------------------------------------- diff --git a/common/src/test/java/org/apache/sqoop/model/TestMBooleanInput.java b/common/src/test/java/org/apache/sqoop/model/TestMBooleanInput.java index b955aa4..cf9cf24 100644 --- a/common/src/test/java/org/apache/sqoop/model/TestMBooleanInput.java +++ b/common/src/test/java/org/apache/sqoop/model/TestMBooleanInput.java @@ -30,70 +30,70 @@ import static org.junit.Assert.assertTrue; */ public class TestMBooleanInput { -// /** -// * Test for class initialization -// */ -// @Test -// public void testInitialization() { -// MBooleanInput input = new MBooleanInput("sqoopsqoop", true); -// assertEquals("sqoopsqoop", input.getName()); -// assertEquals(true, input.isSensitive()); -// assertEquals(MInputType.BOOLEAN, input.getType()); -// } -// -// /** -// * Test for equals() method -// */ -// @Test -// public void testEquals() { -// // Positive test -// MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true); -// MBooleanInput input2 = new MBooleanInput("sqoopsqoop", true); -// assertTrue(input1.equals(input2)); -// -// // Negative test -// MBooleanInput input3 = new MBooleanInput("sqoopsqoop", false); -// MBooleanInput input4 = new MBooleanInput("sqoopsqoop", true); -// assertFalse(input3.equals(input4)); -// -// MBooleanInput input5 = new MBooleanInput("sqoopsqoop", false); -// MBooleanInput input6 = new MBooleanInput("sqoop", false); -// assertFalse(input5.equals(input6)); -// } -// -// /** -// * Test for value -// */ -// @Test -// public void testValue() { -// MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true); -// input1.setValue(true); -// assertEquals(true, input1.getValue()); -// input1.setEmpty(); -// assertNull(input1.getValue()); -// } -// -// /** -// * Test for getUrlSafeValueString() and restoreFromUrlSafeValueString() -// */ -// @Test -// public void testUrlSafe() { -// MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true); -// input1.setValue(true); -// // Getting URL safe string -// String tmp = input1.getUrlSafeValueString(); -// // Restore to actual value -// input1.restoreFromUrlSafeValueString(tmp); -// assertEquals(true, input1.getValue()); -// } -// -// /** -// * Test case for MNamedElement.getLabelKey() and MNamedElement.getHelpKey() -// */ -// @Test -// public void testNamedElement() { -// MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true); -// assertEquals("sqoopsqoop.label", input1.getLabelKey()); -// assertEquals("sqoopsqoop.help", input1.getHelpKey()); -// } + /** + * Test for class initialization + */ + @Test + public void testInitialization() { + MBooleanInput input = new MBooleanInput("sqoopsqoop", true); + assertEquals("sqoopsqoop", input.getName()); + assertEquals(true, input.isSensitive()); + assertEquals(MInputType.BOOLEAN, input.getType()); + } + + /** + * Test for equals() method + */ + @Test + public void testEquals() { + // Positive test + MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true); + MBooleanInput input2 = new MBooleanInput("sqoopsqoop", true); + assertTrue(input1.equals(input2)); + + // Negative test + MBooleanInput input3 = new MBooleanInput("sqoopsqoop", false); + MBooleanInput input4 = new MBooleanInput("sqoopsqoop", true); + assertFalse(input3.equals(input4)); + + MBooleanInput input5 = new MBooleanInput("sqoopsqoop", false); + MBooleanInput input6 = new MBooleanInput("sqoop", false); + assertFalse(input5.equals(input6)); + } + + /** + * Test for value + */ + @Test + public void testValue() { + MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true); + input1.setValue(true); + assertEquals(true, input1.getValue()); + input1.setEmpty(); + assertNull(input1.getValue()); + } + + /** + * Test for getUrlSafeValueString() and restoreFromUrlSafeValueString() + */ + @Test + public void testUrlSafe() { + MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true); + input1.setValue(true); + // Getting URL safe string + String tmp = input1.getUrlSafeValueString(); + // Restore to actual value + input1.restoreFromUrlSafeValueString(tmp); + assertEquals(true, input1.getValue()); + } + + /** + * Test case for MNamedElement.getLabelKey() and MNamedElement.getHelpKey() + */ + @Test + public void testNamedElement() { + MBooleanInput input1 = new MBooleanInput("sqoopsqoop", true); + assertEquals("sqoopsqoop.label", input1.getLabelKey()); + assertEquals("sqoopsqoop.help", input1.getHelpKey()); + } }
