• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package junit.framework;
2 
3 /**
4  * A set of assert methods.  Messages are only displayed when an assert fails.
5  */
6 
7 public class Assert {
8 	/**
9 	 * Protect constructor since it is a static only class
10 	 */
Assert()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 	 */
assertTrue(String message, boolean condition)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 	 */
assertTrue(boolean condition)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 	 */
assertFalse(String message, boolean condition)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 	 */
assertFalse(boolean condition)40 	static public void assertFalse(boolean condition) {
41 		assertFalse(null, condition);
42 	}
43 	/**
44 	 * Fails a test with the given message.
45 	 */
fail(String message)46 	static public void fail(String message) {
47 		throw new AssertionFailedError(message);
48 	}
49 	/**
50 	 * Fails a test with no message.
51 	 */
fail()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 	 */
assertEquals(String message, Object expected, Object actual)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 	 */
assertEquals(Object expected, Object actual)70 	static public void assertEquals(Object expected, Object actual) {
71 	    assertEquals(null, expected, actual);
72 	}
73 	/**
74 	 * Asserts that two Strings are equal.
75 	 */
assertEquals(String message, String expected, String actual)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 	 */
assertEquals(String expected, String actual)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 	 */
assertEquals(String message, double expected, double actual, double delta)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 	 */
assertEquals(double expected, double actual, double delta)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 	 */
assertEquals(String message, float expected, float actual, float delta)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 	 */
assertEquals(float expected, float actual, float delta)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 	 */
assertEquals(String message, long expected, long actual)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 	 */
assertEquals(long expected, long actual)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 	 */
assertEquals(String message, boolean expected, boolean actual)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  	 */
assertEquals(boolean expected, boolean actual)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 	 */
assertEquals(String message, byte expected, byte actual)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 	 */
assertEquals(byte expected, byte actual)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 	 */
assertEquals(String message, char expected, char actual)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 	 */
assertEquals(char expected, char actual)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 	 */
assertEquals(String message, short expected, short actual)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 	 */
assertEquals(short expected, short actual)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 	 */
assertEquals(String message, int expected, int actual)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 	 */
assertEquals(int expected, int actual)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 	 */
assertNotNull(Object object)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 	 */
assertNotNull(String message, Object object)219 	static public void assertNotNull(String message, Object object) {
220 		assertTrue(message, object != null);
221 	}
222 	/**
223 	 * Asserts that an object is null.
224 	 */
assertNull(Object object)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 	 */
assertNull(String message, Object object)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 	 */
assertSame(String message, Object expected, Object actual)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 	 */
assertSame(Object expected, Object actual)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  	 */
assertNotSame(String message, Object expected, Object actual)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 	 */
assertNotSame(Object expected, Object actual)263 	static public void assertNotSame(Object expected, Object actual) {
264 		assertNotSame(null, expected, actual);
265 	}
266 
failSame(String message)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 
failNotSame(String message, Object expected, Object actual)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 
failNotEquals(String message, Object expected, Object actual)281 	static private void failNotEquals(String message, Object expected, Object actual) {
282 		fail(format(message, expected, actual));
283 	}
284 
format(String message, Object expected, Object actual)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 }
292