diff --git a/wise-api/src/test/java/com/wisemapping/test/rest/RestAccountControllerTest.java b/wise-api/src/test/java/com/wisemapping/test/rest/RestAccountControllerTest.java index 2a64a3ee..9d94943f 100644 --- a/wise-api/src/test/java/com/wisemapping/test/rest/RestAccountControllerTest.java +++ b/wise-api/src/test/java/com/wisemapping/test/rest/RestAccountControllerTest.java @@ -18,27 +18,30 @@ package com.wisemapping.test.rest; - import com.wisemapping.config.common.CommonConfig; import com.wisemapping.config.rest.RestAppConfig; import com.wisemapping.rest.AdminController; import com.wisemapping.rest.MindmapController; import com.wisemapping.rest.UserController; import com.wisemapping.rest.model.RestUser; +import com.wisemapping.security.UserDetailsService; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.*; +import org.springframework.security.core.userdetails.UsernameNotFoundException; import java.net.URI; import static com.wisemapping.test.rest.RestHelper.*; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.*; @SpringBootTest(classes = {RestAppConfig.class, CommonConfig.class, MindmapController.class, AdminController.class, UserController.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@AutoConfigureMockMvc public class RestAccountControllerTest { private static final String ADMIN_USER = "admin@wisemapping.org"; private static final String ADMIN_PASSWORD = "test"; @@ -46,6 +49,9 @@ public class RestAccountControllerTest { @Autowired private TestRestTemplate restTemplate; + @Autowired + private UserDetailsService service; + static public RestAccountControllerTest create(@NotNull TestRestTemplate restTemplate) { final RestAccountControllerTest result = new RestAccountControllerTest(); result.restTemplate = restTemplate; @@ -53,27 +59,40 @@ public class RestAccountControllerTest { } @Test - public void deleteUser() { // Configure media types ... + public void deleteAccount() { final HttpHeaders requestHeaders = createHeaders(MediaType.APPLICATION_JSON); final TestRestTemplate adminRestTemplate = this.restTemplate.withBasicAuth(ADMIN_USER, ADMIN_PASSWORD); - final RestUser dummyUser = createDummyUser(); - createUser(requestHeaders, adminRestTemplate, dummyUser); + final RestUser newUser = createDummyUser(); + createUser(requestHeaders, adminRestTemplate, newUser); // Delete user ... - final TestRestTemplate dummyTemplate = this.restTemplate.withBasicAuth(dummyUser.getEmail(), "fooPassword"); - dummyTemplate.delete(BASE_REST_URL + "/account"); + final TestRestTemplate newUserTemplate = this.restTemplate.withBasicAuth(newUser.getEmail(), newUser.getPassword()); + final ResponseEntity exchange = newUserTemplate.exchange(BASE_REST_URL + "/account", HttpMethod.DELETE, null, String.class); + assertTrue(exchange.getStatusCode().is2xxSuccessful(), exchange.toString()); - // Is the user there ? - // Check that the user has been created ... -// try { -// findUser(requestHeaders, adminTemplate, location); -// fail("User could not be deleted !"); -// } catch (Exception e) { -// } + // Check that the account has been deleted ... + assertThrows(UsernameNotFoundException.class, () -> { + service.loadUserByUsername(newUser.getEmail()); + }); } + @Test + public void accessAccount() { + final HttpHeaders requestHeaders = createHeaders(MediaType.APPLICATION_JSON); + final TestRestTemplate adminRestTemplate = this.restTemplate.withBasicAuth(ADMIN_USER, ADMIN_PASSWORD); + + final RestUser newUser = createDummyUser(); + createUser(requestHeaders, adminRestTemplate, newUser); + + final TestRestTemplate newUserTemplate = this.restTemplate.withBasicAuth(newUser.getEmail(), newUser.getPassword()); + final ResponseEntity exchange = newUserTemplate.exchange(BASE_REST_URL + "/account", HttpMethod.GET, null, RestUser.class); + assertTrue(exchange.getStatusCode().is2xxSuccessful(), exchange.toString()); + assertEquals(exchange.getBody().getEmail(), newUser.getEmail()); + } + + @Test public RestUser createNewUser() { // Configure media types ... diff --git a/wise-api/src/test/java/com/wisemapping/test/rest/RestJwtAuthControllerTest.java b/wise-api/src/test/java/com/wisemapping/test/rest/RestJwtAuthControllerTest.java index f00f44ff..1159e4d3 100644 --- a/wise-api/src/test/java/com/wisemapping/test/rest/RestJwtAuthControllerTest.java +++ b/wise-api/src/test/java/com/wisemapping/test/rest/RestJwtAuthControllerTest.java @@ -22,14 +22,10 @@ package com.wisemapping.test.rest; import com.fasterxml.jackson.databind.ObjectMapper; import com.wisemapping.config.common.CommonConfig; import com.wisemapping.config.rest.RestAppConfig; -import com.wisemapping.model.User; import com.wisemapping.rest.JwtAuthController; import com.wisemapping.rest.model.RestJwtUser; -import com.wisemapping.rest.model.RestUser; -import com.wisemapping.rest.model.RestUserRegistration; import com.wisemapping.security.JwtTokenUtil; import com.wisemapping.service.UserService; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -38,15 +34,8 @@ import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; -import static com.wisemapping.test.rest.RestHelper.createDummyUser; -import static org.hamcrest.Matchers.containsString; -import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; -import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @SpringBootTest(classes = {RestAppConfig.class, CommonConfig.class, JwtAuthController.class}) diff --git a/wise-api/src/test/java/com/wisemapping/test/rest/RestUserControllerTest.java b/wise-api/src/test/java/com/wisemapping/test/rest/RestUserControllerTest.java index 661fd86a..73fe8128 100644 --- a/wise-api/src/test/java/com/wisemapping/test/rest/RestUserControllerTest.java +++ b/wise-api/src/test/java/com/wisemapping/test/rest/RestUserControllerTest.java @@ -27,22 +27,20 @@ import com.wisemapping.rest.UserController; import com.wisemapping.rest.model.RestUser; import com.wisemapping.rest.model.RestUserRegistration; import com.wisemapping.service.UserService; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; -import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors; import org.springframework.test.web.servlet.MockMvc; import static com.wisemapping.test.rest.RestHelper.createDummyUser; import static org.hamcrest.Matchers.containsString; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;