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

io.github.xinyangpan.cucumber.assertj.AssertjUtils Maven / Gradle / Ivy

package io.github.xinyangpan.cucumber.assertj;

import static org.assertj.core.api.Assertions.assertThat;

import java.util.List;
import java.util.function.Function;

import org.apache.commons.collections4.CollectionUtils;
import org.assertj.core.api.Assert;

public class AssertjUtils {

	public static , A> Assert assertIgnoringNullEqualTo(Assert asserts, Object expected) {
		return assertIgnoringNull(asserts, asserts::isEqualTo, expected);
	}

	public static , A, T> Assert assertIgnoringNull(Assert asserts, Function> assertMethod, T expected) {
		if (expected == null) {
			return asserts;
		} else {
			return assertMethod.apply(expected);
		}
	}

	@SuppressWarnings("unchecked")
	public static  void exactlyInAnyOrder(List actuals, List expects) {
		exactlyInAnyOrder(actuals, (T[]) CollectionUtils.emptyIfNull(expects).toArray());
	}

	public static  void exactlyInAnyOrder(List actuals, T[] expects) {
		assertThat(CollectionUtils.emptyIfNull(actuals)).usingFieldByFieldElementComparator().containsExactlyInAnyOrder(expects);
	}

}