All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xdean.jex.util.lang.AssertUtil Maven / Gradle / Ivy

The newest version!
package xdean.jex.util.lang;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.Stream;

public class AssertUtil {

  public static void assertTrue(boolean b) {
    if (!b) {
      throw new AssertionError();
    }
  }

  public static void assertEmpty(Optional o) {
    assertTrue(!o.isPresent());
  }

  public static void assertPresent(Optional o) {
    assertTrue(o.isPresent());
  }

  public static void assertNotNull(Object obj) {
    Objects.requireNonNull(obj, "ASSERT NOTNULL FAIL");
  }

  public static void assertContainsAll(Map map, Object... keys) {
    if (!isAllTrue(map::containsKey, keys)) {
      throw new AssertionError("The map should has following keys: " + Arrays.toString(keys));
    }
  }

  public static void assertContainsAll(List list, Object... elements) {
    if (!isAllTrue(list::contains, elements)) {
      throw new AssertionError("The list should has following elements: " + Arrays.toString(elements));
    }
  }

  @SafeVarargs
  private static  boolean isAllTrue(Predicate predicate, T... elements) {
    return !Stream.of(elements).filter(predicate.negate()).findFirst().isPresent();
  }

  public static void assertInstanceOf(Object object, Class expectClass) {
    boolean b = expectClass.isInstance(object);
    if (b == false) {
      throw new AssertionError(
          String.format("The expect class is %s, but actually %s.", expectClass.getName(),
              object.getClass().getName()));
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy