blob: bcefb7be48e280cccac906b25a1f2e862f11be97 [file] [log] [blame]
/*
* See LICENSE file in distribution for copyright and licensing information.
*/
package org.yaml.snakeyaml;
import java.sql.Timestamp;
import java.util.Date;
import junit.framework.TestCase;
public class JavaBeanWithNullValuesTest extends TestCase {
private JavaBeanLoader<JavaBeanWithNullValues> loader;
@Override
protected void setUp() throws Exception {
loader = new JavaBeanLoader<JavaBeanWithNullValues>(JavaBeanWithNullValues.class);
}
public void testNotNull() throws Exception {
String dumpStr = dumpJavaBeanWithNullValues(false);
Yaml yaml = new Yaml();
JavaBeanWithNullValues parsed = (JavaBeanWithNullValues) yaml.load(dumpStr);
assertNotNull(parsed.getString());
assertNotNull(parsed.getBoolean1());
assertNotNull(parsed.getDate());
assertNotNull(parsed.getDouble1());
assertNotNull(parsed.getFloat1());
assertNotNull(parsed.getInteger());
assertNotNull(parsed.getLong1());
assertNotNull(parsed.getSqlDate());
assertNotNull(parsed.getTimestamp());
//
parsed = loader.load(dumpStr);
assertNotNull(parsed.getString());
assertNotNull(parsed.getBoolean1());
assertNotNull(parsed.getDate());
assertNotNull(parsed.getDouble1());
assertNotNull(parsed.getFloat1());
assertNotNull(parsed.getInteger());
assertNotNull(parsed.getLong1());
assertNotNull(parsed.getSqlDate());
assertNotNull(parsed.getTimestamp());
}
public void testNull() throws Exception {
String dumpStr = dumpJavaBeanWithNullValues(true);
Yaml yaml = new Yaml();
JavaBeanWithNullValues parsed = (JavaBeanWithNullValues) yaml.load(dumpStr);
assertNull(parsed.getString());
//
parsed = loader.load(dumpStr);
assertNull(parsed.getString());
}
public void testNullStringAndBoolean() throws Exception {
JavaBeanWithNullValues javaBeanWithNullValues = new JavaBeanWithNullValues();
DumperOptions options = new DumperOptions();
options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
options.setExplicitStart(true);
options.setExplicitEnd(true);
Yaml yaml = new Yaml(options);
javaBeanWithNullValues.setBoolean1(null);
javaBeanWithNullValues.setDate(new Date(System.currentTimeMillis()));
javaBeanWithNullValues.setDouble1(1d);
javaBeanWithNullValues.setFloat1(1f);
javaBeanWithNullValues.setInteger(1);
javaBeanWithNullValues.setLong1(1l);
javaBeanWithNullValues.setSqlDate(new java.sql.Date(System.currentTimeMillis()));
javaBeanWithNullValues.setString(null); // ok
javaBeanWithNullValues.setTimestamp(new Timestamp(System.currentTimeMillis()));
String dumpStr = yaml.dump(javaBeanWithNullValues);
yaml = new Yaml();
JavaBeanWithNullValues parsed = (JavaBeanWithNullValues) yaml.load(dumpStr);
assertNull(" expect null, got " + parsed.getBoolean1(), parsed.getBoolean1());
assertNull(" expect null, got " + parsed.getString(), parsed.getString());
}
public void testNoRootTag() throws Exception {
JavaBeanWithNullValues javaBeanWithNullValues = new JavaBeanWithNullValues();
DumperOptions options = new DumperOptions();
options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
options.setExplicitStart(true);
options.setExplicitEnd(true);
options.setExplicitRoot("tag:yaml.org,2002:map");
Yaml yaml = new Yaml(options);
javaBeanWithNullValues.setBoolean1(null);
javaBeanWithNullValues.setDate(new Date(System.currentTimeMillis()));
javaBeanWithNullValues.setDouble1(1d);
javaBeanWithNullValues.setFloat1(1f);
javaBeanWithNullValues.setInteger(1);
javaBeanWithNullValues.setLong1(1l);
javaBeanWithNullValues.setSqlDate(new java.sql.Date(System.currentTimeMillis()));
javaBeanWithNullValues.setString(null); // ok
javaBeanWithNullValues.setTimestamp(new Timestamp(System.currentTimeMillis()));
String dumpStr = yaml.dump(javaBeanWithNullValues);
assertFalse("No explicit root tag must be used.", dumpStr
.contains("JavaBeanWithNullValues"));
yaml = new Yaml();
JavaBeanWithNullValues parsed = loader.load(dumpStr);
assertNull(" expect null, got " + parsed.getBoolean1(), parsed.getBoolean1());
assertNull(" expect null, got " + parsed.getString(), parsed.getString());
assertEquals(1d, parsed.getDouble1());
assertEquals(1f, parsed.getFloat1());
assertEquals(new Integer(1), parsed.getInteger());
assertEquals(new Long(1l), parsed.getLong1());
}
private String dumpJavaBeanWithNullValues(boolean nullValues) {
JavaBeanWithNullValues javaBeanWithNullValues = new JavaBeanWithNullValues();
DumperOptions options = new DumperOptions();
options.setDefaultScalarStyle(DumperOptions.ScalarStyle.DOUBLE_QUOTED);
options.setExplicitStart(true);
options.setExplicitEnd(true);
Yaml yaml = new Yaml(options);
if (nullValues) {
return yaml.dump(javaBeanWithNullValues);
}
javaBeanWithNullValues.setBoolean1(false);
javaBeanWithNullValues.setDate(new Date(System.currentTimeMillis()));
javaBeanWithNullValues.setDouble1(1d);
javaBeanWithNullValues.setFloat1(1f);
javaBeanWithNullValues.setInteger(1);
javaBeanWithNullValues.setLong1(1l);
javaBeanWithNullValues.setSqlDate(new java.sql.Date(System.currentTimeMillis()));
javaBeanWithNullValues.setString(""); // ok
javaBeanWithNullValues.setTimestamp(new Timestamp(System.currentTimeMillis()));
return yaml.dump(javaBeanWithNullValues);
}
}