package junit.tests.framework;
import junit.framework.AssertionFailedError;
import junit.framework.ComparisonFailure;
import junit.framework.TestCase;
public class AssertTest extends TestCase {
/* In the tests that follow, we can't use standard formatting
* for exception tests:
* try {
* somethingThatShouldThrow();
* fail();
* catch (AssertionFailedError e) {
* }
* because fail() would never be reported.
*/
public void testFail() {
// Also, we are testing fail, so we can't rely on fail() working.
// We have to throw the exception manually.
try {
fail();
} catch (AssertionFailedError e) {
return;
}
throw new AssertionFailedError();
}
public void testAssertionFailedErrorToStringWithNoMessage() {
// Also, we are testing fail, so we can't rely on fail() working.
// We have to throw the exception manually.
try {
fail();
} catch (AssertionFailedError e) {
assertEquals("junit.framework.AssertionFailedError", e.toString());
return;
}
throw new AssertionFailedError();
}
public void testAssertionFailedErrorToStringWithMessage() {
// Also, we are testing fail, so we can't rely on fail() working.
// We have to throw the exception manually.
try {
fail("woops!");
} catch (AssertionFailedError e) {
assertEquals("junit.framework.AssertionFailedError: woops!", e.toString());
return;
}
throw new AssertionFailedError();
}
public void testAssertEquals() {
Object o = new Object();
assertEquals(o, o);
try {
assertEquals(new Object(), new Object());
} catch (AssertionFailedError e) {
return;
}
fail();
}
public void testAssertEqualsNull() {
assertEquals((Object) null, (Object) null);
}
public void testAssertStringEquals() {
assertEquals("a", "a");
}
public void testAssertNullNotEqualsString() {
try {
assertEquals(null, "foo");
fail();
} catch (ComparisonFailure e) {
}
}
public void testAssertStringNotEqualsNull() {
try {
assertEquals("foo", null);
fail();
} catch (ComparisonFailure e) {
e.getMessage(); // why no assertion?
}
}
public void testAssertNullNotEqualsNull() {
try {
assertEquals(null, new Object());
} catch (AssertionFailedError e) {
e.getMessage(); // why no assertion?
return;
}
fail();
}
public void testAssertNull() {
assertNull(null);
try {
assertNull(new Object());
} catch (AssertionFailedError e) {
return;
}
fail();
}
public void testAssertNotNull() {
assertNotNull(new Object());
try {
assertNotNull(null);
} catch (AssertionFailedError e) {
return;
}
fail();
}
public void testAssertTrue() {
assertTrue(true);
try {
assertTrue(false);
} catch (AssertionFailedError e) {
return;
}
fail();
}
public void testAssertFalse() {
assertFalse(false);
try {
assertFalse(true);
} catch (AssertionFailedError e) {
return;
}
fail();
}
public void testAssertSame() {
Object o = new Object();
assertSame(o, o);
try {
assertSame(new Integer(1), new Integer(1));
} catch (AssertionFailedError e) {
return;
}
fail();
}
public void testAssertNotSame() {
assertNotSame(new Integer(1), null);
assertNotSame(null, new Integer(1));
assertNotSame(new Integer(1), new Integer(1));
try {
Integer obj = new Integer(1);
assertNotSame(obj, obj);
} catch (AssertionFailedError e) {
return;
}
fail();
}
public void testAssertNotSameFailsNull() {
try {
assertNotSame(null, null);
} catch (AssertionFailedError e) {
return;
}
fail();
}
}