1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.trinidad.convert;
20
21 import javax.faces.component.StateHolder;
22 import javax.faces.component.UIComponent;
23 import javax.faces.convert.Converter;
24 import javax.faces.convert.ConverterException;
25
26 import org.apache.myfaces.trinidadbuild.test.AbstractBaseTestCase;
27 import org.apache.myfaces.trinidadbuild.test.MockUIComponentWrapper;
28 import org.apache.shale.test.mock.MockFacesContext;
29 import org.jmock.Mock;
30
31
32
33
34
35
36
37 public abstract class ConverterTestCase extends AbstractBaseTestCase
38 {
39 public ConverterTestCase(String testName)
40 {
41 super(testName);
42 }
43
44
45
46
47
48
49
50
51
52
53 protected void doTestNull(
54 MockFacesContext context,
55 MockUIComponentWrapper wrapper,
56 Converter converter
57 ) throws ConverterException
58 {
59 Object obj = converter.getAsObject(context, wrapper.getUIComponent(), null);
60 assertEquals(null, obj);
61 String str = converter.getAsString(context, wrapper.getUIComponent(), null);
62 assertEquals("",str);
63 wrapper.getMock().verify();
64 }
65
66
67
68
69 protected void doTestNullContext(
70 MockUIComponentWrapper wrapper,
71 Converter converter) throws NullPointerException
72 {
73 try
74 {
75 converter.getAsObject(null, wrapper.getUIComponent(), "dummy");
76 fail("Expected NullpointerException - if context or component is null");
77 }
78 catch (NullPointerException npe)
79 {
80
81 }
82 try
83 {
84 converter.getAsString(null, wrapper.getUIComponent(), "dummy");
85 fail("Expected NullpointerException - if context or component is null");
86 }
87 catch (NullPointerException npe)
88 {
89
90 }
91 }
92
93
94
95
96 protected void doTestNullComponent(MockFacesContext context,
97 Converter converter ) throws NullPointerException
98 {
99 try
100 {
101 converter.getAsObject(context, null, "dummy");
102 fail("Expected NullpointerException - if context or component is null");
103 }
104 catch (NullPointerException npe)
105 {
106
107 }
108 try
109 {
110 converter.getAsString(context, null, "dummy");
111 fail("Expected NullpointerException - if context or component is null");
112 }
113 catch (NullPointerException npe)
114 {
115
116 }
117 }
118
119 protected void doTestBlankValue(Converter converter)
120 {
121 MockFacesContext context = new MockFacesContext();
122 Mock mock = mock(UIComponent.class);
123 UIComponent component = (UIComponent) mock.proxy();
124 Object value = converter.getAsObject(context, component,"");
125 assertEquals(null, value);
126 }
127
128
129
130
131
132
133
134
135
136
137 protected void doTestGetAsObject(
138 Converter converter,
139 MockFacesContext context,
140 MockUIComponentWrapper wrapper,
141 String value,
142 Object expectedValue
143 ) throws ConverterException
144 {
145 Object conv = converter.getAsObject(context, wrapper.getUIComponent(), value);
146 assertEquals(expectedValue, conv);
147
148 wrapper.getMock().verify();
149 }
150
151
152
153
154
155
156
157
158
159
160 protected void doTestGetAsString(
161 Converter converter,
162 MockFacesContext context,
163 MockUIComponentWrapper wrapper,
164 Object value,
165 String expectedValue
166 ) throws ConverterException
167 {
168 Object conv = converter.getAsString(context, wrapper.getUIComponent(), value);
169 assertEquals(conv, expectedValue);
170 wrapper.getMock().verify();
171 }
172
173
174
175
176
177
178
179
180
181
182
183 protected void doTestEquals(
184 Converter thisConverter,
185 Converter otherConverter,
186 boolean isEqual)
187 {
188 assertEquals(isEqual, thisConverter.equals(otherConverter));
189 assertEquals(isEqual, (thisConverter.hashCode() == otherConverter.hashCode()));
190 }
191
192
193
194
195
196
197
198
199 protected void doTestStateHolderSaveRestore(
200 Converter thisConverter,
201 Converter otherConverter,
202 MockFacesContext context,
203 MockUIComponentWrapper wrapper
204 )
205 {
206 Object state = ((StateHolder)thisConverter).saveState(context);
207
208 ((StateHolder)otherConverter).restoreState(context, state);
209
210 doTestEquals(thisConverter, otherConverter, true);
211 wrapper.getMock().verify();
212 }
213
214
215
216
217
218
219
220
221
222 protected boolean equals(
223 Object o1,
224 Object o2
225 )
226 {
227 return ( o1 == o2 || (o1 != null && o1.equals(o2)));
228 }
229 }