package org.jboss.as.test.shared.util; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.function.Supplier; import org.junit.Assume; /** * Helper methods which help to skip tests for feature which is not yet fully working. Put the call of the method directly into * the failing test method, or if you want to skip whole test class, then put the method call into method annotated with * {@link org.junit.BeforeClass}. * * @author Josef Cacek */ public class AssumeTestGroupUtil { public static final Supplier<Boolean> CONDITION_SKIP_ELYTRON_PROFILE = () -> (System.getProperty("elytron") == null || Boolean.getBoolean("wildfly.tmp.enable.elytron.profile.tests")); /** * Assume for invocation-related test failures. It skips test in case the system property * {@codewildfly.tmp.enable.invocation.tests} hasn't value {@code 'true'}. */ public static void assumeInvocationTestsEnabled() { assumeCondition("Failing Invocation tests are disabled", () -> Boolean.getBoolean("wildfly.tmp.enable.invocation.tests")); } /** * Assume for test failures when running with Elytron profile enabled. It skips test in case the {@code '-Delytron'} Maven * argument is used (for Elytron profile activation) and system property {@code wildfly.tmp.enable.elytron.profile.tests} * hasn't value {@code 'true'}. */ public static void assumeElytronProfileTestsEnabled() { assumeCondition("Tests failing in Elytron profile are disabled", CONDITION_SKIP_ELYTRON_PROFILE); } private static void assumeCondition(final String message, final Supplier<Boolean> assumeTrueCondition) { AccessController.doPrivileged(new PrivilegedAction<Void>() { @Override public Void run() { Assume.assumeTrue(message, assumeTrueCondition.get()); return null; } }); } }