From 86c9032dcba9a92a9525dd65ecfe910e8c73664a Mon Sep 17 00:00:00 2001 From: Ravi Mantena Date: Fri, 9 Apr 2021 11:53:04 -0400 Subject: Auth Service Errors Fix Issue-ID: DCAEGEN2-2727 Change-Id: Ibc2ffe24d2f41fc085c251acafc2bfe6c58c39d4 Signed-off-by: Ravi Mantena --- mod2/auth-service/pom.xml | 9 +--- .../mod/objectmothers/RoleObjectMother.java | 9 ++-- .../platform/mod/web/AuthControllerTest.java | 43 +++++++++---------- .../platform/mod/web/UserControllerTest.java | 50 ++++++++++------------ 4 files changed, 49 insertions(+), 62 deletions(-) diff --git a/mod2/auth-service/pom.xml b/mod2/auth-service/pom.xml index 3723584..b1135c5 100644 --- a/mod2/auth-service/pom.xml +++ b/mod2/auth-service/pom.xml @@ -101,11 +101,6 @@ - - org.springframework.security - spring-security-test - test - com.squareup.okhttp3 mockwebserver @@ -127,12 +122,12 @@ jaxb-api 2.3.1 - + diff --git a/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/objectmothers/RoleObjectMother.java b/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/objectmothers/RoleObjectMother.java index 68002ac..a249744 100644 --- a/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/objectmothers/RoleObjectMother.java +++ b/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/objectmothers/RoleObjectMother.java @@ -3,7 +3,7 @@ * * ============LICENSE_START======================================================= * * org.onap.dcae * * ================================================================================ - * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * Copyright (c) 2020 - 2021 AT&T Intellectual Property. All rights reserved. * * ================================================================================ * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. @@ -23,12 +23,9 @@ package org.onap.dcaegen2.platform.mod.objectmothers; -import org.onap.dcaegen2.platform.mod.models.ModUser; +import java.util.ArrayList; +import java.util.List; import org.onap.dcaegen2.platform.mod.models.Role; -import org.onap.dcaegen2.platform.mod.repositories.RoleRepository; - -import java.util.*; -import java.util.stream.Collectors; /** * @author diff --git a/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/web/AuthControllerTest.java b/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/web/AuthControllerTest.java index 2aad289..7ec1b89 100644 --- a/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/web/AuthControllerTest.java +++ b/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/web/AuthControllerTest.java @@ -3,7 +3,7 @@ * * ============LICENSE_START======================================================= * * org.onap.dcae * * ================================================================================ - * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * Copyright (c) 2020 - 2021 AT&T Intellectual Property. All rights reserved. * * ================================================================================ * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. @@ -22,15 +22,29 @@ package org.onap.dcaegen2.platform.mod.web; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.gson.Gson; -import org.junit.Assert; +import static org.hamcrest.core.IsNull.notNullValue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.anyString; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static org.onap.dcaegen2.platform.mod.objectmothers.AuthObjectMother.asJsonString; +import static org.onap.dcaegen2.platform.mod.objectmothers.AuthObjectMother.getLoginRequest; +import static org.onap.dcaegen2.platform.mod.objectmothers.AuthObjectMother.getModUser; +import static org.onap.dcaegen2.platform.mod.objectmothers.AuthObjectMother.getSignupRequest; +import static org.onap.dcaegen2.platform.mod.objectmothers.AuthObjectMother.getUserDetailsImpl; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.util.Optional; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.onap.dcaegen2.platform.mod.controllers.AuthController; -import org.onap.dcaegen2.platform.mod.models.*; +import org.onap.dcaegen2.platform.mod.models.LoginRequest; +import org.onap.dcaegen2.platform.mod.models.Role; +import org.onap.dcaegen2.platform.mod.models.SignupRequest; import org.onap.dcaegen2.platform.mod.repositories.RoleRepository; import org.onap.dcaegen2.platform.mod.repositories.UserRepository; import org.onap.dcaegen2.platform.mod.security.jwt.AuthEntryPointJwt; @@ -38,29 +52,14 @@ import org.onap.dcaegen2.platform.mod.security.jwt.JwtUtils; import org.onap.dcaegen2.platform.mod.security.services.UserDetailsServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.http.*; +import org.springframework.http.MediaType; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.test.context.support.WithMockUser; -import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.web.servlet.MockMvc; -import org.springframework.web.client.RestTemplate; -import org.testng.annotations.BeforeTest; - -import java.io.IOException; -import java.util.Optional; - -import static org.hamcrest.core.IsNull.notNullValue; -import static org.mockito.Mockito.*; -import static org.onap.dcaegen2.platform.mod.objectmothers.AuthObjectMother.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; /** * @author diff --git a/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/web/UserControllerTest.java b/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/web/UserControllerTest.java index 1374e0e..2e0057b 100644 --- a/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/web/UserControllerTest.java +++ b/mod2/auth-service/src/test/java/org/onap/dcaegen2/platform/mod/web/UserControllerTest.java @@ -3,7 +3,7 @@ * * ============LICENSE_START======================================================= * * org.onap.dcae * * ================================================================================ - * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * Copyright (c) 2020 - 2021 AT&T Intellectual Property. All rights reserved. * * ================================================================================ * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. @@ -22,22 +22,33 @@ package org.onap.dcaegen2.platform.mod.web; -import org.apache.tools.ant.taskdefs.optional.extension.Specification; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static org.onap.dcaegen2.platform.mod.objectmothers.AuthObjectMother.asJsonString; +import static org.onap.dcaegen2.platform.mod.objectmothers.AuthObjectMother.getModUser; +import static org.onap.dcaegen2.platform.mod.objectmothers.UserObjectMother.getUpdateUserRequest; +import static org.onap.dcaegen2.platform.mod.objectmothers.UserObjectMother.getUsers; +import static org.onap.dcaegen2.platform.mod.objectmothers.UserObjectMother.userId; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + import org.junit.Assert; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.runner.Request; import org.mockito.Mock; -import org.mockito.Mockito; -import org.onap.dcaegen2.platform.mod.controllers.RoleController; import org.onap.dcaegen2.platform.mod.controllers.UserController; -import org.onap.dcaegen2.platform.mod.models.LoginRequest; import org.onap.dcaegen2.platform.mod.models.ModUser; import org.onap.dcaegen2.platform.mod.models.UpdateUserRequest; import org.onap.dcaegen2.platform.mod.repositories.RoleRepository; import org.onap.dcaegen2.platform.mod.repositories.UserRepository; import org.onap.dcaegen2.platform.mod.security.jwt.AuthEntryPointJwt; import org.onap.dcaegen2.platform.mod.security.jwt.JwtUtils; +import org.onap.dcaegen2.platform.mod.security.services.UserDetailsImpl; import org.onap.dcaegen2.platform.mod.security.services.UserDetailsServiceImpl; import org.onap.dcaegen2.platform.mod.services.MODUserDetailService; import org.springframework.beans.factory.annotation.Autowired; @@ -46,24 +57,8 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; import org.springframework.security.core.Authentication; import org.springframework.security.test.context.support.WithMockUser; -import org.springframework.test.web.client.RequestMatcher; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; -import org.springframework.test.web.servlet.ResultMatcher; - -import java.util.Optional; - -import static org.hamcrest.Matchers.notNullValue; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.*; -import static org.onap.dcaegen2.platform.mod.objectmothers.AuthObjectMother.asJsonString; -import static org.onap.dcaegen2.platform.mod.objectmothers.AuthObjectMother.getModUser; -import static org.onap.dcaegen2.platform.mod.objectmothers.RoleObjectMother.getRoles; -import static org.onap.dcaegen2.platform.mod.objectmothers.UserObjectMother.*; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.content; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; /** * @author @@ -107,16 +102,17 @@ public class UserControllerTest { @Test void test_getUsername() throws Exception { - when(userRepository.findByUsername(any())).thenReturn(Optional.of(new ModUser())); + when(userDetailsService.loadUserByUsername(userId)).thenReturn(UserDetailsImpl.build(new ModUser())); MvcResult result = mockMvc.perform(get("/api/users/" + userId) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()).andReturn(); Assert.assertNotNull(result.getResponse().getContentAsString()); - verify(userRepository, times(1)).findByUsername(any()); + verify(userDetailsService, times(1)).loadUserByUsername(userId); } + @WithMockUser(roles="ADMIN") @Test void test_getAllUsers() throws Exception { @@ -146,7 +142,7 @@ public class UserControllerTest { } - @WithMockUser(username="ADMIN") + @WithMockUser(roles="ADMIN") @Test void test_userUpdateOwnProfile_returnsSuccessResponse() throws Exception { //arrange @@ -155,13 +151,13 @@ public class UserControllerTest { when(userDetailsService.adminUpdateUser(userId,updateUserRequest,"token")).thenReturn(getModUser()); mockMvc.perform(patch("/api/users/admin/" + userId) - //.header("Authorization", "token") + .header("Authorization", "token") .contentType(MediaType.APPLICATION_JSON) .content(asJsonString(updateUserRequest)).accept(MediaType.APPLICATION_JSON)) //.andExpect(jsonPath("$.message", notNullValue())) .andExpect(status().isOk()).andReturn(); - verify(userDetailsService, times(1)).adminUpdateUser(anyString(),updateUserRequest,anyString()); + verify(userDetailsService, times(1)).adminUpdateUser(userId,updateUserRequest,"token"); } -- cgit 1.2.3-korg