blob: 364e646ff2beec0434b18f4a3d0aebf2a83bb8f7 [file] [log] [blame]
jeffhao5d1ac922011-09-29 17:41:15 -07001package junit.framework;
2
3/**
4 * A set of assert methods. Messages are only displayed when an assert fails.
5 */
6
7public class Assert {
8 /**
9 * Protect constructor since it is a static only class
10 */
11 protected Assert() {
12 }
13
14 /**
15 * Asserts that a condition is true. If it isn't it throws
16 * an AssertionFailedError with the given message.
17 */
18 static public void assertTrue(String message, boolean condition) {
19 if (!condition)
20 fail(message);
21 }
22 /**
23 * Asserts that a condition is true. If it isn't it throws
24 * an AssertionFailedError.
25 */
26 static public void assertTrue(boolean condition) {
27 assertTrue(null, condition);
28 }
29 /**
30 * Asserts that a condition is false. If it isn't it throws
31 * an AssertionFailedError with the given message.
32 */
33 static public void assertFalse(String message, boolean condition) {
34 assertTrue(message, !condition);
35 }
36 /**
37 * Asserts that a condition is false. If it isn't it throws
38 * an AssertionFailedError.
39 */
40 static public void assertFalse(boolean condition) {
41 assertFalse(null, condition);
42 }
43 /**
44 * Fails a test with the given message.
45 */
46 static public void fail(String message) {
47 throw new AssertionFailedError(message);
48 }
49 /**
50 * Fails a test with no message.
51 */
52 static public void fail() {
53 fail(null);
54 }
55 /**
56 * Asserts that two objects are equal. If they are not
57 * an AssertionFailedError is thrown with the given message.
58 */
59 static public void assertEquals(String message, Object expected, Object actual) {
60 if (expected == null && actual == null)
61 return;
62 if (expected != null && expected.equals(actual))
63 return;
64 failNotEquals(message, expected, actual);
65 }
66 /**
67 * Asserts that two objects are equal. If they are not
68 * an AssertionFailedError is thrown.
69 */
70 static public void assertEquals(Object expected, Object actual) {
71 assertEquals(null, expected, actual);
72 }
73 /**
74 * Asserts that two Strings are equal.
75 */
76 static public void assertEquals(String message, String expected, String actual) {
77 if (expected == null && actual == null)
78 return;
79 if (expected != null && expected.equals(actual))
80 return;
81 throw new ComparisonFailure(message, expected, actual);
82 }
83 /**
84 * Asserts that two Strings are equal.
85 */
86 static public void assertEquals(String expected, String actual) {
87 assertEquals(null, expected, actual);
88 }
89 /**
90 * Asserts that two doubles are equal concerning a delta. If they are not
91 * an AssertionFailedError is thrown with the given message. If the expected
92 * value is infinity then the delta value is ignored.
93 */
94 static public void assertEquals(String message, double expected, double actual, double delta) {
95 // handle infinity specially since subtracting to infinite values gives NaN and the
96 // the following test fails
97 if (Double.isInfinite(expected)) {
98 if (!(expected == actual))
99 failNotEquals(message, new Double(expected), new Double(actual));
100 } else if (!(Math.abs(expected-actual) <= delta)) // Because comparison with NaN always returns false
101 failNotEquals(message, new Double(expected), new Double(actual));
102 }
103 /**
104 * Asserts that two doubles are equal concerning a delta. If the expected
105 * value is infinity then the delta value is ignored.
106 */
107 static public void assertEquals(double expected, double actual, double delta) {
108 assertEquals(null, expected, actual, delta);
109 }
110 /**
111 * Asserts that two floats are equal concerning a delta. If they are not
112 * an AssertionFailedError is thrown with the given message. If the expected
113 * value is infinity then the delta value is ignored.
114 */
115 static public void assertEquals(String message, float expected, float actual, float delta) {
116 // handle infinity specially since subtracting to infinite values gives NaN and the
117 // the following test fails
118 if (Float.isInfinite(expected)) {
119 if (!(expected == actual))
120 failNotEquals(message, new Float(expected), new Float(actual));
121 } else if (!(Math.abs(expected-actual) <= delta))
122 failNotEquals(message, new Float(expected), new Float(actual));
123 }
124 /**
125 * Asserts that two floats are equal concerning a delta. If the expected
126 * value is infinity then the delta value is ignored.
127 */
128 static public void assertEquals(float expected, float actual, float delta) {
129 assertEquals(null, expected, actual, delta);
130 }
131 /**
132 * Asserts that two longs are equal. If they are not
133 * an AssertionFailedError is thrown with the given message.
134 */
135 static public void assertEquals(String message, long expected, long actual) {
136 assertEquals(message, new Long(expected), new Long(actual));
137 }
138 /**
139 * Asserts that two longs are equal.
140 */
141 static public void assertEquals(long expected, long actual) {
142 assertEquals(null, expected, actual);
143 }
144 /**
145 * Asserts that two booleans are equal. If they are not
146 * an AssertionFailedError is thrown with the given message.
147 */
148 static public void assertEquals(String message, boolean expected, boolean actual) {
149 assertEquals(message, new Boolean(expected), new Boolean(actual));
150 }
151 /**
152 * Asserts that two booleans are equal.
153 */
154 static public void assertEquals(boolean expected, boolean actual) {
155 assertEquals(null, expected, actual);
156 }
157 /**
158 * Asserts that two bytes are equal. If they are not
159 * an AssertionFailedError is thrown with the given message.
160 */
161 static public void assertEquals(String message, byte expected, byte actual) {
162 assertEquals(message, new Byte(expected), new Byte(actual));
163 }
164 /**
165 * Asserts that two bytes are equal.
166 */
167 static public void assertEquals(byte expected, byte actual) {
168 assertEquals(null, expected, actual);
169 }
170 /**
171 * Asserts that two chars are equal. If they are not
172 * an AssertionFailedError is thrown with the given message.
173 */
174 static public void assertEquals(String message, char expected, char actual) {
175 assertEquals(message, new Character(expected), new Character(actual));
176 }
177 /**
178 * Asserts that two chars are equal.
179 */
180 static public void assertEquals(char expected, char actual) {
181 assertEquals(null, expected, actual);
182 }
183 /**
184 * Asserts that two shorts are equal. If they are not
185 * an AssertionFailedError is thrown with the given message.
186 */
187 static public void assertEquals(String message, short expected, short actual) {
188 assertEquals(message, new Short(expected), new Short(actual));
189 }
190 /**
191 * Asserts that two shorts are equal.
192 */
193 static public void assertEquals(short expected, short actual) {
194 assertEquals(null, expected, actual);
195 }
196 /**
197 * Asserts that two ints are equal. If they are not
198 * an AssertionFailedError is thrown with the given message.
199 */
200 static public void assertEquals(String message, int expected, int actual) {
201 assertEquals(message, new Integer(expected), new Integer(actual));
202 }
203 /**
204 * Asserts that two ints are equal.
205 */
206 static public void assertEquals(int expected, int actual) {
207 assertEquals(null, expected, actual);
208 }
209 /**
210 * Asserts that an object isn't null.
211 */
212 static public void assertNotNull(Object object) {
213 assertNotNull(null, object);
214 }
215 /**
216 * Asserts that an object isn't null. If it is
217 * an AssertionFailedError is thrown with the given message.
218 */
219 static public void assertNotNull(String message, Object object) {
220 assertTrue(message, object != null);
221 }
222 /**
223 * Asserts that an object is null.
224 */
225 static public void assertNull(Object object) {
226 assertNull(null, object);
227 }
228 /**
229 * Asserts that an object is null. If it is not
230 * an AssertionFailedError is thrown with the given message.
231 */
232 static public void assertNull(String message, Object object) {
233 assertTrue(message, object == null);
234 }
235 /**
236 * Asserts that two objects refer to the same object. If they are not
237 * an AssertionFailedError is thrown with the given message.
238 */
239 static public void assertSame(String message, Object expected, Object actual) {
240 if (expected == actual)
241 return;
242 failNotSame(message, expected, actual);
243 }
244 /**
245 * Asserts that two objects refer to the same object. If they are not
246 * the same an AssertionFailedError is thrown.
247 */
248 static public void assertSame(Object expected, Object actual) {
249 assertSame(null, expected, actual);
250 }
251 /**
252 * Asserts that two objects refer to the same object. If they are not
253 * an AssertionFailedError is thrown with the given message.
254 */
255 static public void assertNotSame(String message, Object expected, Object actual) {
256 if (expected == actual)
257 failSame(message);
258 }
259 /**
260 * Asserts that two objects refer to the same object. If they are not
261 * the same an AssertionFailedError is thrown.
262 */
263 static public void assertNotSame(Object expected, Object actual) {
264 assertNotSame(null, expected, actual);
265 }
266
267 static private void failSame(String message) {
268 String formatted= "";
269 if (message != null)
270 formatted= message+" ";
271 fail(formatted+"expected not same");
272 }
273
274 static private void failNotSame(String message, Object expected, Object actual) {
275 String formatted= "";
276 if (message != null)
277 formatted= message+" ";
278 fail(formatted+"expected same:<"+expected+"> was not:<"+actual+">");
279 }
280
281 static private void failNotEquals(String message, Object expected, Object actual) {
282 fail(format(message, expected, actual));
283 }
284
285 static String format(String message, Object expected, Object actual) {
286 String formatted= "";
287 if (message != null)
288 formatted= message+" ";
289 return formatted+"expected:<"+expected+"> but was:<"+actual+">";
290 }
291}