diff --git a/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/DatabaseSetupExtension.java b/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/DatabaseSetupExtension.java new file mode 100644 index 000000000000..344ddb2c60f8 --- /dev/null +++ b/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/DatabaseSetupExtension.java @@ -0,0 +1,19 @@ +package com.baeldung.before.all.global; + +import org.junit.jupiter.api.extension.BeforeAllCallback; +import org.junit.jupiter.api.extension.ExtensionContext; + +public class DatabaseSetupExtension implements BeforeAllCallback { + + private static boolean initialized = false; + + @Override + public void beforeAll(ExtensionContext context) throws Exception { + if (!initialized) { + initialized = true; + // Global setup: Initialize database connections + System.out.println("Initializing global database connections..."); + // Example: DatabaseConnectionPool.initialize(); + } + } +} \ No newline at end of file diff --git a/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/ExampleTest.java b/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/ExampleTest.java new file mode 100644 index 000000000000..d784ea93ec61 --- /dev/null +++ b/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/ExampleTest.java @@ -0,0 +1,25 @@ +package com.baeldung.before.all.global; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +public class ExampleTest { + + @BeforeAll + static void setup() { + System.out.println("ExampleTest1 - Execute: BeforeAll"); + // Initialize class-specific resources + } + + @Test + void test1() { + System.out.println("ExampleTest1 - Execute test 1"); + // Test logic + } + + @Test + void test2() { + System.out.println("ExampleTest1 - Execute test 2"); + // Test logic + } +} diff --git a/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/ExampleTest2.java b/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/ExampleTest2.java new file mode 100644 index 000000000000..d0c9eba45642 --- /dev/null +++ b/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/ExampleTest2.java @@ -0,0 +1,19 @@ +package com.baeldung.before.all.global; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +public class ExampleTest2 { + + @BeforeAll + static void setup() { + System.out.println("ExampleTest2 - Execute: BeforeAll"); + // Initialize class-specific resources + } + + @Test + void test1() { + System.out.println("ExampleTest2 - Execute test 1"); + // Test logic + } +} diff --git a/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/GlobalDatabaseListener.java b/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/GlobalDatabaseListener.java new file mode 100644 index 000000000000..850f8cd2ff1e --- /dev/null +++ b/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/GlobalDatabaseListener.java @@ -0,0 +1,21 @@ +package com.baeldung.before.all.global; + +import org.junit.platform.launcher.TestExecutionListener; +import org.junit.platform.launcher.TestPlan; + +public class GlobalDatabaseListener implements TestExecutionListener { + + @Override + public void testPlanExecutionStarted(TestPlan testPlan) { + // Global setup + System.out.println("GlobalDatabaseListener # testPlanExecutionStarted "); + // Example: DatabaseConnectionPool.initialize(); + } + + @Override + public void testPlanExecutionFinished(TestPlan testPlan) { + // Global teardown + System.out.println("GlobalDatabaseListener # testPlanExecutionFinished"); + // Example: DatabaseConnectionPool.shutdown(); + } +} diff --git a/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/GlobalDatabaseSessionListener.java b/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/GlobalDatabaseSessionListener.java new file mode 100644 index 000000000000..1fd1cfc64005 --- /dev/null +++ b/testing-modules/junit-5-advanced-3/src/test/java/com/baeldung/before/all/global/GlobalDatabaseSessionListener.java @@ -0,0 +1,19 @@ +package com.baeldung.before.all.global; + +import org.junit.platform.launcher.LauncherSession; +import org.junit.platform.launcher.LauncherSessionListener; + +public class GlobalDatabaseSessionListener implements LauncherSessionListener { + + @Override + public void launcherSessionOpened(LauncherSession session) { + // Global setup before session starts + System.out.println("launcherSessionOpened"); + } + + @Override + public void launcherSessionClosed(LauncherSession session) { + // Global teardown after session ends + System.out.println("launcherSessionClosed"); + } +} \ No newline at end of file diff --git a/testing-modules/junit-5-advanced-3/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/testing-modules/junit-5-advanced-3/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension new file mode 100644 index 000000000000..8ac4e77f9f9b --- /dev/null +++ b/testing-modules/junit-5-advanced-3/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension @@ -0,0 +1 @@ +com.baeldung.before.all.global.DatabaseSetupExtension \ No newline at end of file diff --git a/testing-modules/junit-5-advanced-3/src/test/resources/META-INF/services/org.junit.platform.launcher.LauncherSessionListener b/testing-modules/junit-5-advanced-3/src/test/resources/META-INF/services/org.junit.platform.launcher.LauncherSessionListener new file mode 100644 index 000000000000..177bccdc4e7f --- /dev/null +++ b/testing-modules/junit-5-advanced-3/src/test/resources/META-INF/services/org.junit.platform.launcher.LauncherSessionListener @@ -0,0 +1 @@ +com.baeldung.before.all.global.GlobalDatabaseSessionListener \ No newline at end of file diff --git a/testing-modules/junit-5-advanced-3/src/test/resources/META-INF/services/org.junit.platform.launcher.TestExecutionListener b/testing-modules/junit-5-advanced-3/src/test/resources/META-INF/services/org.junit.platform.launcher.TestExecutionListener new file mode 100644 index 000000000000..d10d0faf42a1 --- /dev/null +++ b/testing-modules/junit-5-advanced-3/src/test/resources/META-INF/services/org.junit.platform.launcher.TestExecutionListener @@ -0,0 +1 @@ +com.baeldung.before.all.global.GlobalDatabaseListener \ No newline at end of file diff --git a/testing-modules/junit-5-advanced-3/src/test/resources/junit-platform.properties b/testing-modules/junit-5-advanced-3/src/test/resources/junit-platform.properties new file mode 100644 index 000000000000..25ce5c984419 --- /dev/null +++ b/testing-modules/junit-5-advanced-3/src/test/resources/junit-platform.properties @@ -0,0 +1 @@ +junit.jupiter.extensions.autodetection.enabled = true