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) {
|
||||
input.setEmpty();
|
||||
} 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.Assert;
|
||||
import org.testng.AssertJUnit;
|
||||
|
||||
import static org.testng.AssertJUnit.assertNull;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
@ -38,10 +39,12 @@ public class TestConfigUtils {
|
||||
public void testConfigs() {
|
||||
TestConfiguration config = new TestConfiguration();
|
||||
config.aConfig.a1 = "value";
|
||||
config.cConfig.enumeration = Enumeration.X;
|
||||
|
||||
List<MConfig> configsByInstance = ConfigUtils.toConfigs(config);
|
||||
AssertJUnit.assertEquals(getConfigs(), configsByInstance);
|
||||
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);
|
||||
AssertJUnit.assertEquals(getConfigs(), configsByClass);
|
||||
@ -49,6 +52,7 @@ public void testConfigs() {
|
||||
List<MConfig> configsByBoth = ConfigUtils.toConfigs(TestConfiguration.class, config);
|
||||
AssertJUnit.assertEquals(getConfigs(), configsByBoth);
|
||||
AssertJUnit.assertEquals("value", configsByBoth.get(0).getInputs().get(0).getValue());
|
||||
AssertJUnit.assertEquals("X", configsByBoth.get(2).getInput("cConfig.enumeration").getValue());
|
||||
}
|
||||
|
||||
@Test(expectedExceptions = SqoopException.class)
|
||||
|
Loading…
Reference in New Issue
Block a user