1 package org.seasar.cubby.dxo;
2
3 import java.text.SimpleDateFormat;
4 import java.util.Calendar;
5 import java.util.Date;
6 import java.util.HashMap;
7 import java.util.List;
8 import java.util.Map;
9
10 import org.seasar.extension.unit.S2TestCase;
11
12
13
14
15
16 public class HttpRequestDxoTest extends S2TestCase {
17 private HttpRequestDxo httpRequestDxo;
18
19 @Override
20 protected void setUp() throws Exception {
21 super.setUp();
22 include(getClass().getName().replace('.', '/') + ".dicon");
23 }
24
25 public void testBeanToMap() {
26 Calendar cal = Calendar.getInstance();
27 cal.set(2006, 0, 1);
28
29 TestBean bean = new TestBean();
30 bean.setDate(cal.getTime());
31
32 Map<String, String> map = new HashMap<String, String>();
33
34 httpRequestDxo.convert(bean, map);
35 assertEquals("2006-01-01", map.get("date"));
36 }
37
38 public void testMapToBean() {
39 Map<String, String> map = new HashMap<String, String>();
40 map.put("date", "2006-01-01");
41
42 TestBean bean = new TestBean();
43
44 httpRequestDxo.convert(map, bean);
45 Calendar cal = Calendar.getInstance();
46 cal.set(2006, 0, 1);
47 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
48 assertEquals(format.format(cal.getTime()), format.format(bean.getDate()));
49 }
50
51 public void testMapToBean_OneValue() {
52 Map<String, String> map = new HashMap<String, String>();
53 map.put("num1", "1");
54
55 TestBean bean = new TestBean();
56
57 httpRequestDxo.convert(map, bean);
58 assertEquals(new Integer(1), bean.getNum1());
59 }
60
61 public void testMapToBean_MultiValue() {
62 Map<String, Object> map = new HashMap<String, Object>();
63 map.put("num2", new String[] {"1", "2"});
64
65 TestBean bean = new TestBean();
66
67 httpRequestDxo.convert(map, bean);
68 assertEquals(2, bean.getNum2().length);
69 assertEquals(new Integer(1), bean.getNum2()[0]);
70 assertEquals(new Integer(2), bean.getNum2()[1]);
71 }
72
73 public void testMapToBean_MultiValueIncludesEmptyValue () {
74 Map<String, Object> map = new HashMap<String, Object>();
75 map.put("num2", new String[] {"1", "", "2"});
76
77 TestBean bean = new TestBean();
78
79 httpRequestDxo.convert(map, bean);
80 assertEquals(3, bean.getNum2().length);
81 assertEquals(new Integer(1), bean.getNum2()[0]);
82 assertEquals(null, bean.getNum2()[1]);
83 assertEquals(new Integer(2), bean.getNum2()[2]);
84 }
85
86 public class TestBean {
87
88 Date date;
89
90 Integer num1;
91
92 Integer[] num2;
93
94 List<String> num3;
95
96 public Date getDate() {
97 return date;
98 }
99
100 public void setDate(Date date) {
101 this.date = date;
102 }
103
104 public Integer getNum1() {
105 return num1;
106 }
107
108 public void setNum1(Integer num1) {
109 this.num1 = num1;
110 }
111
112 public Integer[] getNum2() {
113 return num2;
114 }
115
116 public void setNum2(Integer[] num2) {
117 this.num2 = num2;
118 }
119
120 public List<String> getNum3() {
121 return num3;
122 }
123
124 public void setNum3(List<String> num3) {
125 this.num3 = num3;
126 }
127
128 }
129 }