From 1d0596f23c70befa1b92743869c1787cdbf671fc Mon Sep 17 00:00:00 2001 From: Priyesh Mashelkar Date: Mon, 7 Oct 2019 04:42:45 +0100 Subject: [PATCH] BAEL-3300 The Spring TestExecutionListener (#7933) * Added module for article * Update pom.xml * Delete pom.xml * Update and rename ForecastProcessorTest.java to ForecastProcessorUnitTest.java * Updated code as per review comments * Delete .gitignore * Update pom.xml * BAEL-2904 Moved files * BAEL-2904 Deleted files from previous project * BAEL-2904 Moved classes for method reference article * Update pom.xml * BAEL-2904 Updated README.md * First draft * BAEL-3300 Added more tests * BAEL-3300 Removed unused imports * BAEL-3300 Run dos2unix on README.md --- .../AdditionService.java | 10 ++++++ .../AdditionServiceUnitTest.java | 22 ++++++++++++ .../CustomTestExecutionListener.java | 36 +++++++++++++++++++ ...ecutionListenersWithMergeModeUnitTest.java | 26 ++++++++++++++ ...tionListenersWithoutMergeModeUnitTest.java | 26 ++++++++++++++ .../test/resources/META-INF/spring.factories | 3 ++ 6 files changed, 123 insertions(+) create mode 100644 testing-modules/spring-testing/src/main/java/com/baeldung/testexecutionlisteners/AdditionService.java create mode 100644 testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/AdditionServiceUnitTest.java create mode 100644 testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/CustomTestExecutionListener.java create mode 100644 testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/TestExecutionListenersWithMergeModeUnitTest.java create mode 100644 testing-modules/spring-testing/src/test/java/com/baeldung/testexecutionlisteners/TestExecutionListenersWithoutMergeModeUnitTest.java create mode 100644 testing-modules/spring-testing/src/test/resources/META-INF/spring.factories 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