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