mirror of
https://github.com/apache/sqoop.git
synced 2025-05-16 17:00:53 +08:00
SQOOP-2305: Sqoop2: ConfigUtils is not properly serializing Enum values
(Jarek Jarcec Cecho via Abraham Elmahrek)
This commit is contained in:
parent
d5584f27aa
commit
36711af547
@ -182,7 +182,13 @@ private static MConfig toConfig(String configName, Class klass, Object object) {
|
|||||||
if(value == null) {
|
if(value == null) {
|
||||||
input.setEmpty();
|
input.setEmpty();
|
||||||
} else {
|
} else {
|
||||||
input.setValue(value);
|
// Some types requires special cast here due to type changes
|
||||||
|
// between Java and model objects
|
||||||
|
if(type.isEnum()) {
|
||||||
|
input.setValue(value.toString());
|
||||||
|
} else {
|
||||||
|
input.setValue(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
import org.testng.Assert;
|
import org.testng.Assert;
|
||||||
import org.testng.AssertJUnit;
|
import org.testng.AssertJUnit;
|
||||||
|
|
||||||
import static org.testng.AssertJUnit.assertNull;
|
import static org.testng.AssertJUnit.assertNull;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
@ -38,10 +39,12 @@ public class TestConfigUtils {
|
|||||||
public void testConfigs() {
|
public void testConfigs() {
|
||||||
TestConfiguration config = new TestConfiguration();
|
TestConfiguration config = new TestConfiguration();
|
||||||
config.aConfig.a1 = "value";
|
config.aConfig.a1 = "value";
|
||||||
|
config.cConfig.enumeration = Enumeration.X;
|
||||||
|
|
||||||
List<MConfig> configsByInstance = ConfigUtils.toConfigs(config);
|
List<MConfig> configsByInstance = ConfigUtils.toConfigs(config);
|
||||||
AssertJUnit.assertEquals(getConfigs(), configsByInstance);
|
AssertJUnit.assertEquals(getConfigs(), configsByInstance);
|
||||||
AssertJUnit.assertEquals("value", configsByInstance.get(0).getInputs().get(0).getValue());
|
AssertJUnit.assertEquals("value", configsByInstance.get(0).getInputs().get(0).getValue());
|
||||||
|
AssertJUnit.assertEquals("X", configsByInstance.get(2).getInput("cConfig.enumeration").getValue());
|
||||||
|
|
||||||
List<MConfig> configsByClass = ConfigUtils.toConfigs(TestConfiguration.class);
|
List<MConfig> configsByClass = ConfigUtils.toConfigs(TestConfiguration.class);
|
||||||
AssertJUnit.assertEquals(getConfigs(), configsByClass);
|
AssertJUnit.assertEquals(getConfigs(), configsByClass);
|
||||||
@ -49,6 +52,7 @@ public void testConfigs() {
|
|||||||
List<MConfig> configsByBoth = ConfigUtils.toConfigs(TestConfiguration.class, config);
|
List<MConfig> configsByBoth = ConfigUtils.toConfigs(TestConfiguration.class, config);
|
||||||
AssertJUnit.assertEquals(getConfigs(), configsByBoth);
|
AssertJUnit.assertEquals(getConfigs(), configsByBoth);
|
||||||
AssertJUnit.assertEquals("value", configsByBoth.get(0).getInputs().get(0).getValue());
|
AssertJUnit.assertEquals("value", configsByBoth.get(0).getInputs().get(0).getValue());
|
||||||
|
AssertJUnit.assertEquals("X", configsByBoth.get(2).getInput("cConfig.enumeration").getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expectedExceptions = SqoopException.class)
|
@Test(expectedExceptions = SqoopException.class)
|
||||||
|
Loading…
Reference in New Issue
Block a user