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