From cc827908e0080d81bdfd080438472d2406769413 Mon Sep 17 00:00:00 2001 From: at508 Date: Sun, 22 Sep 2019 22:46:13 -0400 Subject: [PATCH] [BAEL-2998] - Adding example for @DirtiesContext --- testing-modules/spring-testing/pom.xml | 10 ++++- .../SpringDataRestApplication.java | 13 ++++++ .../com/baeldung/dirtiescontext/User.java | 9 ++++ .../baeldung/dirtiescontext/UserCache.java | 30 ++++++++++++++ .../dirtiescontext/DirtiesContextTest.java | 41 +++++++++++++++++++ 5 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/SpringDataRestApplication.java create mode 100644 testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/User.java create mode 100644 testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/UserCache.java create mode 100644 testing-modules/spring-testing/src/test/java/com/baeldung/dirtiescontext/DirtiesContextTest.java diff --git a/testing-modules/spring-testing/pom.xml b/testing-modules/spring-testing/pom.xml index 6f2700e2df..bb7d54218a 100644 --- a/testing-modules/spring-testing/pom.xml +++ b/testing-modules/spring-testing/pom.xml @@ -15,18 +15,26 @@ - org.hamcrest java-hamcrest ${hamcrest.version} + + org.projectlombok + lombok + ${lombok.version} + provided + + org.springframework.boot spring-boot-starter LATEST + + org.springframework.boot spring-boot-starter-test diff --git a/testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/SpringDataRestApplication.java b/testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/SpringDataRestApplication.java new file mode 100644 index 0000000000..ab784532a7 --- /dev/null +++ b/testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/SpringDataRestApplication.java @@ -0,0 +1,13 @@ +package com.baeldung.dirtiescontext; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SpringDataRestApplication { + + public static void main(String[] args) { + SpringApplication.run(SpringDataRestApplication.class, args); + } + +} diff --git a/testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/User.java b/testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/User.java new file mode 100644 index 0000000000..4d453c5e91 --- /dev/null +++ b/testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/User.java @@ -0,0 +1,9 @@ +package com.baeldung.dirtiescontext; + +public class User { + + String firstName; + + String lastName; + +} diff --git a/testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/UserCache.java b/testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/UserCache.java new file mode 100644 index 0000000000..f03eee3bb8 --- /dev/null +++ b/testing-modules/spring-testing/src/main/java/com/baeldung/dirtiescontext/UserCache.java @@ -0,0 +1,30 @@ +package com.baeldung.dirtiescontext; + +import java.util.HashSet; +import java.util.Set; + +import org.springframework.stereotype.Component; + +import lombok.Getter; +import lombok.ToString; + +@ToString +@Component +public class UserCache { + + @Getter + private Set userList = new HashSet<>(); + + public boolean addUser(String user) { + return userList.add(user); + } + + public boolean removeUser(String user) { + return userList.remove(user); + } + + public void printUserList(String message) { + System.out.println(message + ": " + userList); + } + +} \ No newline at end of file diff --git a/testing-modules/spring-testing/src/test/java/com/baeldung/dirtiescontext/DirtiesContextTest.java b/testing-modules/spring-testing/src/test/java/com/baeldung/dirtiescontext/DirtiesContextTest.java new file mode 100644 index 0000000000..6248f758ce --- /dev/null +++ b/testing-modules/spring-testing/src/test/java/com/baeldung/dirtiescontext/DirtiesContextTest.java @@ -0,0 +1,41 @@ +package com.baeldung.dirtiescontext; + +import org.junit.jupiter.api.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.MethodMode; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringBootTest(classes = SpringDataRestApplication.class) +class DirtiesContextTest { + + @Autowired + protected UserCache userCache; + + @DirtiesContext(methodMode = MethodMode.AFTER_METHOD) + @Test + void testOne() { + userCache.addUser("John Doe"); + userCache.printUserList("Test One"); + } + + @Test + void testTwo() { + userCache.printUserList("Test Two"); + } + + @Test + void testThree() { + userCache.addUser("Jane Doe"); + userCache.printUserList("Test Three"); + } + + @Test + void testFour() { + userCache.printUserList("Test Four"); + } + +}