diff --git a/testing-modules/spring-testing/src/main/java/com/baeldung/testexecutionlisteners/AdditionService.java b/testing-modules/spring-testing/src/main/java/com/baeldung/testexecutionlisteners/AdditionService.java new file mode 100644 index 0000000000..8711c4edc2 --- /dev/null +++ b/testing-modules/spring-testing/src/main/java/com/baeldung/testexecutionlisteners/AdditionService.java @@ -0,0 +1,10 @@ +package com.baeldung.testexecutionlisteners; + +import org.springframework.stereotype.Service; + +@Service +public class AdditionService { + public int add(int a, int b) { + return a + b; + } +} diff --git a/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/AdditionServiceUnitTest.java b/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/AdditionServiceUnitTest.java new file mode 100644 index 0000000000..bbe537a3ce --- /dev/null +++ b/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/AdditionServiceUnitTest.java @@ -0,0 +1,22 @@ +package com.baeldung.testexecutionlisteners; + +import static org.junit.Assert.assertThat; + +import org.hamcrest.Matchers; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@ContextConfiguration(classes = AdditionService.class) +public class AdditionServiceUnitTest { + @Autowired + private AdditionService additionService; + + @Test + public void whenValidNumbersPassed_thenReturnSum() { + assertThat(additionService.add(5, 13), Matchers.is(18)); + } +} diff --git a/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/CustomTestExecutionListener.java b/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/CustomTestExecutionListener.java new file mode 100644 index 0000000000..748137192d --- /dev/null +++ b/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/CustomTestExecutionListener.java @@ -0,0 +1,36 @@ +package com.baeldung.testexecutionlisteners; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.Ordered; +import org.springframework.test.context.TestContext; +import org.springframework.test.context.TestExecutionListener; + +public class CustomTestExecutionListener implements TestExecutionListener, Ordered { + private static final Logger logger = LoggerFactory.getLogger(CustomTestExecutionListener.class); + + public void beforeTestClass(TestContext testContext) throws Exception { + logger.info("beforeTestClass : {}", testContext.getTestClass()); + }; + + public void prepareTestInstance(TestContext testContext) throws Exception { + logger.info("prepareTestInstance : {}", testContext.getTestClass()); + }; + + public void beforeTestMethod(TestContext testContext) throws Exception { + logger.info("beforeTestMethod : {}", testContext.getTestMethod()); + }; + + public void afterTestMethod(TestContext testContext) throws Exception { + logger.info("afterTestMethod : {}", testContext.getTestMethod()); + }; + + public void afterTestClass(TestContext testContext) throws Exception { + logger.info("afterTestClass : {}", testContext.getTestClass()); + } + + @Override + public int getOrder() { + return Integer.MAX_VALUE; + }; +} diff --git a/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/TestExecutionListenersWithMergeModeUnitTest.java b/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/TestExecutionListenersWithMergeModeUnitTest.java new file mode 100644 index 0000000000..44937aa755 --- /dev/null +++ b/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/TestExecutionListenersWithMergeModeUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.testexecutionlisteners; + +import static org.junit.Assert.assertThat; + +import org.hamcrest.Matchers; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.TestExecutionListeners.MergeMode; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@TestExecutionListeners(value = { CustomTestExecutionListener.class }, + mergeMode = MergeMode.MERGE_WITH_DEFAULTS) +@ContextConfiguration(classes = AdditionService.class) +public class TestExecutionListenersWithMergeModeUnitTest { + @Autowired + private AdditionService additionService; + + @Test + public void whenValidNumbersPassed_thenReturnSum() { + assertThat(additionService.add(5, 13), Matchers.is(18)); + } +} diff --git a/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/TestExecutionListenersWithoutMergeModeUnitTest.java b/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/TestExecutionListenersWithoutMergeModeUnitTest.java new file mode 100644 index 0000000000..e25ab9f381 --- /dev/null +++ b/testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/TestExecutionListenersWithoutMergeModeUnitTest.java @@ -0,0 +1,26 @@ +package com.baeldung.testexecutionlisteners; + +import static org.junit.Assert.assertThat; + +import org.hamcrest.Matchers; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.support.DependencyInjectionTestExecutionListener; + +@RunWith(SpringRunner.class) +@TestExecutionListeners(value = {CustomTestExecutionListener.class, + DependencyInjectionTestExecutionListener.class}) +@ContextConfiguration(classes = AdditionService.class) +public class TestExecutionListenersWithoutMergeModeUnitTest { + @Autowired + private AdditionService additionService; + + @Test + public void whenValidNumbersPassed_thenReturnSum() { + assertThat(additionService.add(5, 13), Matchers.is(18)); + } +} diff --git a/testing-modules/spring-testing/src/test/resources/META-INF/spring.factories b/testing-modules/spring-testing/src/test/resources/META-INF/spring.factories new file mode 100644 index 0000000000..74d21eb86b --- /dev/null +++ b/testing-modules/spring-testing/src/test/resources/META-INF/spring.factories @@ -0,0 +1,3 @@ +# Test Execution Listeners +org.springframework.test.context.TestExecutionListener=\ +com.baeldung.testexecutionlisteners.CustomTestExecutionListener