From 3c085ac4872d238673b1802b7bb301d102a4b971 Mon Sep 17 00:00:00 2001 From: Julien Iguchi-Cartigny Date: Fri, 10 Jul 2015 22:45:15 +0200 Subject: [PATCH] Support for mockMVC + UserService integration test --- pom.xml | 2 +- src/test/java/fr/plil/sio/web/mvc/UserServiceTest.java | 31 +++++++++++++++++++++++++++++++ src/test/java/fr/plil/sio/web/mvc/ViewUsersControllerTest.java | 33 ++++++++++++++++++++------------- 3 files changed, 52 insertions(+), 14 deletions(-) create mode 100644 src/test/java/fr/plil/sio/web/mvc/UserServiceTest.java diff --git a/pom.xml b/pom.xml index 9c72d58..7324ed5 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent 1.2.4.RELEASE - + diff --git a/src/test/java/fr/plil/sio/web/mvc/UserServiceTest.java b/src/test/java/fr/plil/sio/web/mvc/UserServiceTest.java new file mode 100644 index 0000000..989229c --- /dev/null +++ b/src/test/java/fr/plil/sio/web/mvc/UserServiceTest.java @@ -0,0 +1,31 @@ +package fr.plil.sio.web.mvc; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.transaction.TransactionConfiguration; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +import static org.junit.Assert.assertEquals; + +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(classes = Application.class) +@Transactional +@TransactionConfiguration +public class UserServiceTest { + + @Resource + private UserService userService; + + @Resource + private UserRepository userRepository; + + @Test + public void testCreateUser() { + userService.createUser("blabla", "polo"); + assertEquals("polo", userRepository.findByUsername("blabla").getPassword()); + } +} diff --git a/src/test/java/fr/plil/sio/web/mvc/ViewUsersControllerTest.java b/src/test/java/fr/plil/sio/web/mvc/ViewUsersControllerTest.java index 963df6f..926b7f3 100644 --- a/src/test/java/fr/plil/sio/web/mvc/ViewUsersControllerTest.java +++ b/src/test/java/fr/plil/sio/web/mvc/ViewUsersControllerTest.java @@ -2,23 +2,36 @@ package fr.plil.sio.web.mvc; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.SpringApplicationConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; import java.util.LinkedList; import java.util.List; -import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +@RunWith(SpringJUnit4ClassRunner.class) +@SpringApplicationConfiguration(classes = Application.class) +@WebAppConfiguration public class ViewUsersControllerTest { private ViewUsersController viewUsersController; private UserRepository userRepository; private UserSession userSession; + private MockMvc mockMvc; + @Before public void createInstances() { viewUsersController = new ViewUsersController(); + mockMvc = MockMvcBuilders.standaloneSetup(viewUsersController).build(); userRepository = mock(UserRepository.class); List users = new LinkedList<>(); users.add(new User("admin", "password")); @@ -30,17 +43,11 @@ public class ViewUsersControllerTest { } @Test - public void testPopulateUsers() { - assertEquals(1, viewUsersController.populateUsers().size()); - } - - @Test - public void testPopulateUser() { - assertEquals("admin", viewUsersController.populateUser().getUsername()); - } - - @Test - public void testGetViewUsers() { - assertEquals("viewUsers",viewUsersController.getViewUsers()); + public void testPopulateUsers() throws Exception { + mockMvc.perform(get("/")) + .andExpect(status().isOk()) + .andExpect(view().name("viewUsers")) + .andExpect(model().attributeExists("users")) + .andExpect(model().attributeExists("userSession")); } } -- libgit2 0.21.2