BATCH-762: added unit test

This commit is contained in:
trisberg
2008-10-20 20:35:41 +00:00
parent 0d8ccf2f40
commit 2ae57f85db
3 changed files with 142 additions and 1 deletions

View File

@@ -0,0 +1,70 @@
package org.springframework.batch.core.repository.dao;
import java.math.BigDecimal;
import java.util.Map;
/**
* @author trisberg
*/
public class ComplexObject {
private String name;
private BigDecimal number;
private ComplexObject obj;
private Map map;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getNumber() {
return number;
}
public void setNumber(BigDecimal number) {
this.number = number;
}
public ComplexObject getObj() {
return obj;
}
public void setObj(ComplexObject obj) {
this.obj = obj;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ComplexObject that = (ComplexObject) o;
if (map != null ? !map.equals(that.map) : that.map != null) return false;
if (name != null ? !name.equals(that.name) : that.name != null) return false;
if (number != null ? !number.equals(that.number) : that.number != null) return false;
if (obj != null ? !obj.equals(that.obj) : that.obj != null) return false;
return true;
}
public int hashCode() {
int result;
result = (name != null ? name.hashCode() : 0);
result = 31 * result + (number != null ? number.hashCode() : 0);
result = 31 * result + (obj != null ? obj.hashCode() : 0);
result = 31 * result + (map != null ? map.hashCode() : 0);
return result;
}
}

View File

@@ -0,0 +1,71 @@
package org.springframework.batch.core.repository.dao;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.junit.Before;
import java.util.Map;
import java.util.HashMap;
import java.util.Date;
import java.math.BigDecimal;
/**
* @author trisberg
*/
public class XStreamExecutionContextStringSerializerTests {
ExecutionContextStringSerializer serializer;
@Before
public void onSetUp() throws Exception {
serializer = new XStreamExecutionContextStringSerializer();
((XStreamExecutionContextStringSerializer)serializer).afterPropertiesSet();
}
@Test
public void testSerializeAMap() {
Map<String, Object> m1 = new HashMap<String, Object>();
m1.put("object1", Long.valueOf(12345L));
m1.put("object2", "OBJECT TWO");
m1.put("object3", new Date(1234567L));
m1.put("object4", new Double(1234567.1234D));
String s = serializer.serialize(m1);
Map<String, Object> m2 = serializer.deserialize(s);
compareContexts(m1, m2);
}
@Test
public void testComplexObject() {
Map<String, Object> m1 = new HashMap<String, Object>();
ComplexObject o1 = new ComplexObject();
o1.setName("Test");
Map<String, Object> m = new HashMap<String, Object>();
m.put("object1", Long.valueOf(12345L));
m.put("object2", "OBJECT TWO");
o1.setMap(m);
o1.setNumber(new BigDecimal("12345.67"));
ComplexObject o2 = new ComplexObject();
o2.setName("Inner Object");
o2.setMap(m);
o2.setNumber(new BigDecimal("98765.43"));
o1.setObj(o2);
m1.put("co", o1);
String s = serializer.serialize(m1);
Map<String, Object> m2 = serializer.deserialize(s);
compareContexts(m1, m2);
}
private void compareContexts(Map<String, Object> m1, Map<String, Object> m2) {
for (String key : m1.keySet()) {
assertEquals("Bad key/value for " + key, m1.get(key), m2.get(key));
}
}
}