Files
JIMRI/java/test/jmri/util/junit/annotations/DisabledIfHeadlessClassTest.java
2026-06-17 14:00:51 +02:00

66 lines
1.5 KiB
Java

package jmri.util.junit.annotations;
import jmri.util.JUnitUtil;
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.fail;
/**
* This tests DisabledIfHeadless annotation applied to a whole class.
* @author Steve Young Copyright 2024
*/
@DisabledIfHeadless
public class DisabledIfHeadlessClassTest {
private static boolean isHeadless() {
return java.awt.GraphicsEnvironment.isHeadless();
}
private static int methodCalls = 0;
private static void incrementCalls() {
methodCalls++;
}
@Test
public void testClassDisabledIfHeadlessTestDoesNotRun() {
if ( isHeadless() ) {
fail("Test ran, though Class has DisabledIfHeadless annotation.");
} else {
incrementCalls();
}
}
@BeforeEach
public void setUp() {
if ( isHeadless() ) {
fail("BeforeEach ran, though Class Disabled as in headless mode.");
}
incrementCalls();
}
@AfterEach
public void tearDown() {
if ( isHeadless() ) {
fail("AfterEach ran, though Class Disabled as in headless mode.");
}
incrementCalls();
}
@BeforeAll
public static void beforeAll() {
JUnitUtil.setUp();
methodCalls = 0;
}
@AfterAll
public static void afterAll() {
if ( ! isHeadless() ) {
Assertions.assertEquals(3, methodCalls, "headed test ran beforeEach, Test, AfterEach");
}
JUnitUtil.tearDown();
}
}