package de.invesdwin.util.assertions;
import java.util.Collection;
import javax.annotation.concurrent.Immutable;
import de.invesdwin.norva.apt.staticfacade.StaticFacadeDefinition;
import de.invesdwin.util.assertions.internal.AAssertionsStaticFacade;
import de.invesdwin.util.assertions.type.DecimalAssert;
import de.invesdwin.util.assertions.type.FDateAssert;
import de.invesdwin.util.assertions.type.StringAssert;
import de.invesdwin.util.lang.Objects;
import de.invesdwin.util.math.decimal.ADecimal;
import de.invesdwin.util.time.fdate.FDate;
@StaticFacadeDefinition(name = "de.invesdwin.util.assertions.internal.AAssertionsStaticFacade", targets = {
org.assertj.core.api.Assertions.class, org.assertj.guava.api.Assertions.class,
com.google.common.base.Preconditions.class }, filterMethodSignatureExpressions = ".* org\\.assertj\\.core\\.api\\.StringAssert assertThat\\(java\\.lang\\.String .*")
@Immutable
public final class Assertions extends AAssertionsStaticFacade {
private Assertions() {}
public static <T extends ADecimal<T>> DecimalAssert<T> assertThat(final T actual) {
return new DecimalAssert<T>(actual);
}
public static StringAssert assertThat(final String actual) {
return new StringAssert(actual);
}
public static FDateAssert assertThat(final FDate actual) {
return new FDateAssert(actual);
}
public static void checkEquals(final Object o1, final Object o2) {
if (!Objects.equals(o1, o2)) {
assertThat(o1).isEqualTo(o2);
failExceptionExpected();
}
}
public static void checkEquals(final Object o1, final Object o2, final String message, final Object... args) {
if (!Objects.equals(o1, o2)) {
assertThat(o1).as(message, args).isEqualTo(o2);
failExceptionExpected();
}
}
public static void checkNotEquals(final Object o1, final Object o2) {
if (Objects.equals(o1, o2)) {
assertThat(o1).isNotEqualTo(o2);
failExceptionExpected();
}
}
public static void checkNotEquals(final Object o1, final Object o2, final String message, final Object... args) {
if (Objects.equals(o1, o2)) {
assertThat(o1).as(message, args).isNotEqualTo(o2);
failExceptionExpected();
}
}
public static void failExceptionExpected() {
fail("Exception expected");
}
public static void checkSame(final Object o1, final Object o2) {
if (o1 != o2) {
assertThat(o1).isSameAs(o2);
failExceptionExpected();
}
}
public static void checkSame(final Object o1, final Object o2, final String message, final Object... args) {
if (o1 != o2) {
assertThat(o1).as(message, args).isSameAs(o2);
failExceptionExpected();
}
}
public static void checkNull(final Object obj) {
if (obj != null) {
assertThat(obj).isNull();
failExceptionExpected();
}
}
public static void checkNull(final Object obj, final String message, final Object... args) {
if (obj != null) {
assertThat(obj).as(message, args).isNull();
failExceptionExpected();
}
}
public static void checkTrue(final boolean expression) {
if (!expression) {
assertThat(expression).isTrue();
failExceptionExpected();
}
}
public static void checkTrue(final boolean expression, final String message, final Object... args) {
if (!expression) {
assertThat(expression).as(message, args).isTrue();
failExceptionExpected();
}
}
public static void checkFalse(final boolean expression) {
if (expression) {
assertThat(expression).isFalse();
failExceptionExpected();
}
}
public static void checkFalse(final boolean expression, final String message, final Object... args) {
if (expression) {
assertThat(expression).as(message, args).isFalse();
failExceptionExpected();
}
}
public static void checkNotEmpty(final Collection<?> collection) {
if (collection.isEmpty()) {
assertThat(collection).isNotEmpty();
failExceptionExpected();
}
}
public static void checkNotEmpty(final Collection<?> collection, final String message, final Object... args) {
if (collection.isEmpty()) {
assertThat(collection).as(message, args).isNotEmpty();
failExceptionExpected();
}
}
public static void checkNotEmpty(final Object[] collection) {
if (collection.length == 0) {
assertThat(collection).isNotEmpty();
failExceptionExpected();
}
}
public static void checkNotEmpty(final Object[] collection, final String message, final Object... args) {
if (collection.length == 0) {
assertThat(collection).as(message, args).isNotEmpty();
failExceptionExpected();
}
}
public static void checkContains(final Collection<?> collection, final Object element) {
if (!collection.contains(element)) {
assertThat(collection).contains(element);
failExceptionExpected();
}
}
public static void checkContains(final Collection<?> collection, final Object element, final String message,
final Object... args) {
if (!collection.contains(element)) {
assertThat(collection).as(message, args).contains(element);
failExceptionExpected();
}
}
}