1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.trinidad.validator;
20
21 import java.util.HashMap;
22 import java.util.Map;
23
24 import javax.faces.component.StateHolder;
25 import javax.faces.component.UIComponent;
26 import javax.faces.validator.Validator;
27 import javax.faces.validator.ValidatorException;
28
29 import org.apache.myfaces.trinidadbuild.test.AbstractBaseTestCase;
30 import org.apache.myfaces.trinidadbuild.test.MockUIComponentWrapper;
31 import org.apache.shale.test.mock.MockFacesContext;
32 import org.jmock.Mock;
33
34
35
36
37
38 public abstract class ValidatorTestCase extends AbstractBaseTestCase
39 {
40 public ValidatorTestCase(String testName)
41 {
42 super(testName);
43 }
44
45 protected void setMockLabelForComponent(MockUIComponentWrapper wrapper)
46 {
47 Map<String, Object> attributes = new HashMap<String, Object>();
48 attributes.put("label", "label");
49 wrapper.getMock().stubs().method("getAttributes").will(returnValue(attributes));
50 }
51
52
53
54
55
56
57 protected void doTestNull(
58 MockFacesContext context,
59 MockUIComponentWrapper wrapper,
60 Validator validator
61 ) throws ValidatorException
62 {
63 validator.validate(context, wrapper.getUIComponent(), null);
64
65 wrapper.getMock().verify();
66 }
67
68
69
70
71 protected void doTestNullContext(
72 MockUIComponentWrapper wrapper,
73 Validator validator) throws NullPointerException
74 {
75 try
76 {
77 validator.validate(null, wrapper.getUIComponent(), "dummy");
78 fail("Expected NullpointerException - if context or component is null");
79 }
80 catch (NullPointerException npe)
81 {
82
83 }
84 }
85
86
87
88
89 protected void doTestNullComponent(MockFacesContext context,
90 Validator validator ) throws NullPointerException
91 {
92 try
93 {
94 validator.validate(context, null, "dummy");
95 fail("Expected NullpointerException - if context or component is null");
96 }
97 catch (NullPointerException npe)
98 {
99
100 }
101 }
102
103
104
105
106
107
108
109
110 protected void doTestValidate(
111 Validator validator,
112 MockFacesContext context,
113 MockUIComponentWrapper wrapper,
114 Object value
115 ) throws ValidatorException
116 {
117 validator.validate(context, wrapper.getUIComponent(), value );
118 wrapper.getMock().verify();
119 }
120
121
122
123
124
125
126
127
128 protected void doTestEquals(
129 Validator thisValidator,
130 Validator otherValidator,
131 boolean isEqual)
132 {
133 assertEquals(isEqual, thisValidator.equals(otherValidator));
134 }
135
136
137
138
139
140
141
142
143 protected void doTestStateHolderSaveRestore(
144 Validator thisValidator,
145 Validator otherValidator,
146 MockFacesContext context,
147 MockUIComponentWrapper wrapper)
148 {
149 Object state = ((StateHolder)thisValidator).saveState(context);
150
151 ((StateHolder)otherValidator).restoreState(context, state);
152
153 doTestEquals(thisValidator, otherValidator, true);
154 wrapper.getMock().verify();
155 }
156
157 public void doTestIsNotString(Validator validator)
158 {
159 Mock mock = mock(UIComponent.class);
160 UIComponent component = (UIComponent) mock.proxy();
161 mock.stubs().method("getId").will(returnValue("test"));
162 try
163 {
164 validator.validate(facesContext, component, new Integer(1));
165
166 fail("Expected Validator Exception");
167 }
168 catch (IllegalArgumentException iae)
169 {
170
171 }
172 }
173 }
174
175
176
177
178
179
180
181
182