@Test
public void assertNull() {

    // form 1
    Assert.assertNull(null);
    try {
        Assert.assertNull(OBJECT);
    } catch (IllegalArgumentException e) {
        assertThat(e, exception(IllegalArgumentException.class, DEFAULT_HEADER, "must be null"));
    }
    // form 2
    Assert.assertNull(null, MESSAGE);
    try {
        Assert.assertNull(OBJECT, MESSAGE);
    } catch (IllegalArgumentException e) {
        assertThat(e, exception(IllegalArgumentException.class, MESSAGE));
    }
    try {
        Assert.assertNull(OBJECT, MESSAGE, 1);
    } catch (IllegalArgumentException e) {
        assertThat(e, exception(IllegalArgumentException.class, MESSAGE_1));
    }
    // form 3
    Assert.assertNull(null, Assert.ExceptionType.ILLEGAL_STATE, MESSAGE);
    try {
        Assert.assertNull(OBJECT, Assert.ExceptionType.ILLEGAL_STATE, MESSAGE);
    } catch (IllegalStateException e) {
        assertThat(e, exception(IllegalStateException.class, MESSAGE));
    }
    try {
        Assert.assertNull(OBJECT, Assert.ExceptionType.ILLEGAL_STATE, MESSAGE, 1);
    } catch (IllegalStateException e) {
        assertThat(e, exception(IllegalStateException.class, MESSAGE_1));
    }
}