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

com.cedarsoft.test.utils.DisableIfHeadlessCondition Maven / Gradle / Ivy

The newest version!
package com.cedarsoft.test.utils;

import org.junit.jupiter.api.extension.*;

import javax.annotation.Nonnull;
import java.awt.GraphicsEnvironment;
import java.util.Optional;

import static org.junit.jupiter.api.extension.ConditionEvaluationResult.*;
import static org.junit.platform.commons.util.AnnotationUtils.*;

/**
 * Disables tests when running headless
 *
 * @author Johannes Schneider ([email protected])
 */
public class DisableIfHeadlessCondition implements ExecutionCondition {
  @Nonnull
  private static final ConditionEvaluationResult ENABLED_BY_DEFAULT = enabled("@DisableWhenHeadless is not present");
  @Nonnull
  static final ConditionEvaluationResult DISABLED_HEADLESS = disabled("Disabled because running headless");
  @Nonnull
  static final ConditionEvaluationResult ENABLED_NOT_HEADLESS = enabled("Enabled - *not* running headless");

  @Override
  public ConditionEvaluationResult evaluateExecutionCondition(@Nonnull ExtensionContext context) {
    Optional optional = findAnnotation(context.getElement(), DisableIfHeadless.class);
    if (optional.isPresent()) {
      if (GraphicsEnvironment.isHeadless()) {
        return DISABLED_HEADLESS;
      }

      return ENABLED_NOT_HEADLESS;
    }
    return ENABLED_BY_DEFAULT;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy