package com.googlecode.totallylazy; import com.googlecode.totallylazy.predicates.Predicate; import static com.googlecode.totallylazy.predicates.Predicates.is; import static com.googlecode.totallylazy.predicates.Predicates.sameInstance; public interface Assert { static <T> void assertThat(T actual, Predicate<? super T> predicate) { assertThat("", actual, predicate); } static <T> void assertThat(String reason, T actual, Predicate<? super T> predicate) { if (!predicate.matches(actual)) { throw new AssertionError(reason + "\nExpected: " + predicate + "\n Actual: " + actual); } } static public <T> void assertEquals(T expected, T actual) { assertThat(actual, is(expected)); } static void assertTrue(boolean assertion) { assertThat(assertion, is(true)); } static void assertTrue(String reason, boolean assertion) { assertThat(reason, assertion, is(true)); } static void assertFalse(boolean assertion) { assertThat(assertion, is(false)); } static void assertFalse(String reason, boolean assertion) { assertThat(reason, assertion, is(false)); } static public <T> void assertSame(T expected, T actual) { assertThat(actual, sameInstance(expected)); } static void fail() { fail(""); } static void fail(String message) { throw new AssertionError(message); } }