diff --git a/src/test/java/edu/tamu/app/auth/model/AppUserDetailsTest.java b/src/test/java/edu/tamu/app/auth/model/AppUserDetailsTest.java new file mode 100644 index 0000000..61a41bb --- /dev/null +++ b/src/test/java/edu/tamu/app/auth/model/AppUserDetailsTest.java @@ -0,0 +1,32 @@ +package edu.tamu.app.auth.model; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.test.context.junit4.SpringRunner; + +import edu.tamu.app.enums.Role; +import edu.tamu.app.model.User; +import edu.tamu.weaver.auth.model.Credentials; + +@RunWith(SpringRunner.class) +public class AppUserDetailsTest { + + private static final Credentials TEST_CREDENTIALS = new Credentials(); + static { + TEST_CREDENTIALS.setUin("123456789"); + TEST_CREDENTIALS.setEmail("aggieJack@tamu.edu"); + TEST_CREDENTIALS.setFirstName("Aggie"); + TEST_CREDENTIALS.setLastName("Jack"); + TEST_CREDENTIALS.setRole("ROLE_USER"); + } + + private User testUser = new User(TEST_CREDENTIALS.getUin(), TEST_CREDENTIALS.getEmail(), TEST_CREDENTIALS.getFirstName(), TEST_CREDENTIALS.getLastName(), Role.valueOf(TEST_CREDENTIALS.getRole())); + + @Test + public void testConstructor() { + AppUserDetails appUser = new AppUserDetails(testUser); + assertEquals("The parent constructor was not called correctly", testUser.getId(), appUser.getId()); + } +} diff --git a/src/test/java/edu/tamu/app/auth/service/AppUserCredentialsServiceTest.java b/src/test/java/edu/tamu/app/auth/service/AppUserCredentialsServiceTest.java new file mode 100644 index 0000000..d348db6 --- /dev/null +++ b/src/test/java/edu/tamu/app/auth/service/AppUserCredentialsServiceTest.java @@ -0,0 +1,116 @@ +package edu.tamu.app.auth.service; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.when; +import static org.springframework.test.util.ReflectionTestUtils.setField; + +import java.util.Optional; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.test.context.junit4.SpringRunner; + +import edu.tamu.app.enums.Role; +import edu.tamu.app.model.User; +import edu.tamu.app.model.repo.UserRepo; +import edu.tamu.weaver.auth.model.Credentials; + +@RunWith(SpringRunner.class) +public class AppUserCredentialsServiceTest { + + private static final Credentials TEST_CREDENTIALS_1 = new Credentials(); + static { + TEST_CREDENTIALS_1.setUin("123456789"); + TEST_CREDENTIALS_1.setEmail("aggieJack@tamu.edu"); + TEST_CREDENTIALS_1.setFirstName("Aggie"); + TEST_CREDENTIALS_1.setLastName("Jack"); + TEST_CREDENTIALS_1.setRole("ROLE_USER"); + } + + private static final Credentials TEST_CREDENTIALS_2 = new Credentials(); + static { + TEST_CREDENTIALS_2.setUin("987654321"); + TEST_CREDENTIALS_2.setEmail("aggieJack@tamu.edu"); + TEST_CREDENTIALS_2.setFirstName("Aggie"); + TEST_CREDENTIALS_2.setLastName("Jack"); + TEST_CREDENTIALS_2.setRole("ROLE_USER"); + } + + private static final Credentials TEST_NULL_CREDENTIALS = new Credentials(); + static { + TEST_NULL_CREDENTIALS.setUin("987654321"); + TEST_NULL_CREDENTIALS.setEmail("aggieJack@tamu.edu"); + TEST_NULL_CREDENTIALS.setFirstName("Aggie"); + TEST_NULL_CREDENTIALS.setLastName("Jack"); + } + + private static final Credentials TEST_CHANGED_CREDENTIALS = new Credentials(); + static { + TEST_CHANGED_CREDENTIALS.setUin("111111111"); + TEST_CHANGED_CREDENTIALS.setEmail("jsmithk@tamu.edu"); + TEST_CHANGED_CREDENTIALS.setFirstName("John"); + TEST_CHANGED_CREDENTIALS.setLastName("Smith"); + TEST_CHANGED_CREDENTIALS.setRole("ROLE_ADMIN"); + } + + private User testUser1 = new User(TEST_CREDENTIALS_1.getUin(), TEST_CREDENTIALS_1.getEmail(), TEST_CREDENTIALS_1.getFirstName(), TEST_CREDENTIALS_1.getLastName(), Role.valueOf(TEST_CREDENTIALS_1.getRole())); + private User testUser2 = new User(TEST_CREDENTIALS_2.getUin(), TEST_CREDENTIALS_2.getEmail(), TEST_CREDENTIALS_2.getFirstName(), TEST_CREDENTIALS_2.getLastName(), Role.valueOf(TEST_CREDENTIALS_2.getRole())); + + private static final String[] testAdmins = { "123456789", "987654321" }; + + private Optional optionalUser1 = Optional.of(testUser1); + + @Mock + private UserRepo userRepo; + + @InjectMocks + private AppUserCredentialsService credentialsService; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + when(userRepo.findByUsername(TEST_CREDENTIALS_1.getUin())).thenReturn(optionalUser1); + when(userRepo.findByUsername(TEST_CREDENTIALS_2.getUin())).thenReturn(Optional.empty()); + when(userRepo.findByUsername(TEST_CHANGED_CREDENTIALS.getUin())).thenReturn(optionalUser1); + when(userRepo.create(any(String.class), any(String.class), any(String.class), any(String.class), any(Role.class))).thenReturn(testUser2); + when(userRepo.save(any(User.class))).thenReturn(testUser1); + } + + @Test + public void testUpdateUserByCredentials() { + setField(credentialsService, "admins", testAdmins); + User foundUser = credentialsService.updateUserByCredentials(TEST_CREDENTIALS_1); + assertEquals("Unable to find user", testUser1, foundUser); + User unfoundUser = credentialsService.updateUserByCredentials(TEST_CREDENTIALS_2); + assertEquals("Unable to find user", testUser2, unfoundUser); + } + + @Test + public void testGetAnonymousRole() { + String anonRole = credentialsService.getAnonymousRole(); + assertEquals("Anonymous Role not set correctly", Role.ROLE_ANONYMOUS.toString(), anonRole); + } + + @Test + public void testNullRole() { + setField(credentialsService, "admins", testAdmins); + User nullUser = credentialsService.updateUserByCredentials(TEST_NULL_CREDENTIALS); + assertEquals("Null Role not updated", TEST_CREDENTIALS_1.getRole(), nullUser.getRole().toString()); + } + + @Test + public void testChangedUser() { + User changedUser = credentialsService.updateUserByCredentials(TEST_CHANGED_CREDENTIALS); + assertEquals("is present", changedUser, optionalUser1.get()); + assertEquals("Username was not updated", TEST_CHANGED_CREDENTIALS.getUin(), changedUser.getUsername()); + assertEquals("Email was not updated", TEST_CHANGED_CREDENTIALS.getEmail(), changedUser.getEmail()); + assertEquals("First name was not updated", TEST_CHANGED_CREDENTIALS.getFirstName(), changedUser.getFirstName()); + assertEquals("Last name was not updated", TEST_CHANGED_CREDENTIALS.getLastName(), changedUser.getLastName()); + assertEquals("Role was not updated", TEST_CHANGED_CREDENTIALS.getRole(), changedUser.getRole().toString()); + } +} diff --git a/src/test/java/edu/tamu/app/auth/service/AppUserDetailsServiceTest.java b/src/test/java/edu/tamu/app/auth/service/AppUserDetailsServiceTest.java new file mode 100644 index 0000000..1e16fd1 --- /dev/null +++ b/src/test/java/edu/tamu/app/auth/service/AppUserDetailsServiceTest.java @@ -0,0 +1,38 @@ +package edu.tamu.app.auth.service; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.test.context.junit4.SpringRunner; + +import edu.tamu.app.enums.Role; +import edu.tamu.app.model.User; +import edu.tamu.weaver.auth.model.Credentials; + +@RunWith(SpringRunner.class) +public class AppUserDetailsServiceTest { + + private static final Credentials TEST_CREDENTIALS_1 = new Credentials(); + static { + TEST_CREDENTIALS_1.setUin("123456789"); + TEST_CREDENTIALS_1.setEmail("aggieJack@tamu.edu"); + TEST_CREDENTIALS_1.setFirstName("Aggie"); + TEST_CREDENTIALS_1.setLastName("Jack"); + TEST_CREDENTIALS_1.setRole("ROLE_USER"); + } + + private User testUser1 = new User(TEST_CREDENTIALS_1.getUin(), TEST_CREDENTIALS_1.getEmail(), TEST_CREDENTIALS_1.getFirstName(), TEST_CREDENTIALS_1.getLastName(), Role.valueOf(TEST_CREDENTIALS_1.getRole())); + + @InjectMocks + private AppUserDetailsService appUserDetailsService; + + @Test + public void testBuildUserDetails() { + UserDetails details = appUserDetailsService.buildUserDetails(testUser1); + assertEquals("User details not built correctly", TEST_CREDENTIALS_1.getUin(), details.getUsername()); + } + +} diff --git a/src/test/java/edu/tamu/app/controller/FeatureProposalControllerTest.java b/src/test/java/edu/tamu/app/controller/FeatureProposalControllerTest.java index 2fb1d5e..8f62b9a 100644 --- a/src/test/java/edu/tamu/app/controller/FeatureProposalControllerTest.java +++ b/src/test/java/edu/tamu/app/controller/FeatureProposalControllerTest.java @@ -18,7 +18,6 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.messaging.simp.SimpMessagingTemplate; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.enums.Status; @@ -33,7 +32,6 @@ import edu.tamu.weaver.auth.model.Credentials; import edu.tamu.weaver.response.ApiResponse; -@ActiveProfiles("test") @RunWith(SpringRunner.class) public class FeatureProposalControllerTest { diff --git a/src/test/java/edu/tamu/app/controller/IdeaControllerTest.java b/src/test/java/edu/tamu/app/controller/IdeaControllerTest.java index 428597a..c2de1c2 100644 --- a/src/test/java/edu/tamu/app/controller/IdeaControllerTest.java +++ b/src/test/java/edu/tamu/app/controller/IdeaControllerTest.java @@ -18,7 +18,6 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.messaging.simp.SimpMessagingTemplate; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.enums.Status; @@ -32,7 +31,6 @@ import edu.tamu.weaver.auth.model.Credentials; import edu.tamu.weaver.response.ApiResponse; -@ActiveProfiles("test") @RunWith(SpringRunner.class) public class IdeaControllerTest { diff --git a/src/test/java/edu/tamu/app/controller/NoteControllerTest.java b/src/test/java/edu/tamu/app/controller/NoteControllerTest.java index 2243e79..47f5fbc 100644 --- a/src/test/java/edu/tamu/app/controller/NoteControllerTest.java +++ b/src/test/java/edu/tamu/app/controller/NoteControllerTest.java @@ -18,7 +18,6 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.messaging.simp.SimpMessagingTemplate; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.enums.NoteType; @@ -33,7 +32,7 @@ import edu.tamu.weaver.auth.model.Credentials; import edu.tamu.weaver.response.ApiResponse; -@ActiveProfiles("test") + @RunWith(SpringRunner.class) public class NoteControllerTest { diff --git a/src/test/java/edu/tamu/app/controller/NotificationControllerTest.java b/src/test/java/edu/tamu/app/controller/NotificationControllerTest.java index 8faae2f..4ce0ead 100644 --- a/src/test/java/edu/tamu/app/controller/NotificationControllerTest.java +++ b/src/test/java/edu/tamu/app/controller/NotificationControllerTest.java @@ -18,7 +18,6 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.messaging.simp.SimpMessagingTemplate; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.enums.NotificationLocation; @@ -26,7 +25,6 @@ import edu.tamu.app.model.repo.NotificationRepo; import edu.tamu.weaver.response.ApiResponse; -@ActiveProfiles("test") @RunWith(SpringRunner.class) public class NotificationControllerTest { diff --git a/src/test/java/edu/tamu/app/controller/ProjectControllerTest.java b/src/test/java/edu/tamu/app/controller/ProjectControllerTest.java index 947b068..05a106c 100644 --- a/src/test/java/edu/tamu/app/controller/ProjectControllerTest.java +++ b/src/test/java/edu/tamu/app/controller/ProjectControllerTest.java @@ -20,7 +20,6 @@ import org.mockito.Spy; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.Resource; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import com.fasterxml.jackson.core.JsonParseException; @@ -33,7 +32,6 @@ import edu.tamu.weaver.response.ApiResponse; import edu.tamu.weaver.response.ApiStatus; -@ActiveProfiles("test") @RunWith(SpringRunner.class) public class ProjectControllerTest { diff --git a/src/test/java/edu/tamu/app/controller/ServiceControllerTest.java b/src/test/java/edu/tamu/app/controller/ServiceControllerTest.java index ae9a9ac..f73658e 100644 --- a/src/test/java/edu/tamu/app/controller/ServiceControllerTest.java +++ b/src/test/java/edu/tamu/app/controller/ServiceControllerTest.java @@ -19,7 +19,6 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.messaging.simp.SimpMessagingTemplate; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.enums.Status; @@ -40,7 +39,6 @@ import edu.tamu.weaver.response.ApiResponse; import edu.tamu.weaver.response.ApiStatus; -@ActiveProfiles("test") @RunWith(SpringRunner.class) public class ServiceControllerTest { diff --git a/src/test/java/edu/tamu/app/controller/UserControllerTest.java b/src/test/java/edu/tamu/app/controller/UserControllerTest.java new file mode 100644 index 0000000..f2802df --- /dev/null +++ b/src/test/java/edu/tamu/app/controller/UserControllerTest.java @@ -0,0 +1,90 @@ +package edu.tamu.app.controller; + +import static edu.tamu.weaver.response.ApiStatus.SUCCESS; +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.when; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.springframework.messaging.simp.SimpMessagingTemplate; +import org.springframework.test.context.junit4.SpringRunner; + +import edu.tamu.app.enums.Role; +import edu.tamu.app.model.User; +import edu.tamu.app.model.repo.UserRepo; +import edu.tamu.weaver.auth.model.Credentials; +import edu.tamu.weaver.response.ApiResponse; + +@RunWith(SpringRunner.class) +public class UserControllerTest { + + private static final Credentials TEST_CREDENTIALS_1 = new Credentials(); + static { + TEST_CREDENTIALS_1.setUin("123456789"); + TEST_CREDENTIALS_1.setEmail("aggieJack@tamu.edu"); + TEST_CREDENTIALS_1.setFirstName("Aggie"); + TEST_CREDENTIALS_1.setLastName("Jack"); + TEST_CREDENTIALS_1.setRole("ROLE_USER"); + } + + private static final Credentials TEST_CREDENTIALS_2 = new Credentials(); + static { + TEST_CREDENTIALS_2.setUin("987654321"); + TEST_CREDENTIALS_2.setEmail("aggieJack@tamu.edu"); + TEST_CREDENTIALS_2.setFirstName("Aggie"); + TEST_CREDENTIALS_2.setLastName("Jack"); + TEST_CREDENTIALS_2.setRole("ROLE_USER"); + } + + private User testUser1 = new User(TEST_CREDENTIALS_1.getUin(), TEST_CREDENTIALS_1.getEmail(), TEST_CREDENTIALS_1.getFirstName(), TEST_CREDENTIALS_1.getLastName(), Role.valueOf(TEST_CREDENTIALS_1.getRole())); + private User testUser2 = new User(TEST_CREDENTIALS_2.getUin(), TEST_CREDENTIALS_2.getEmail(), TEST_CREDENTIALS_2.getFirstName(), TEST_CREDENTIALS_2.getLastName(), Role.valueOf(TEST_CREDENTIALS_2.getRole())); + + private List mockUserList = new ArrayList(Arrays.asList(new User[] { testUser1, testUser2 })); + + private static ApiResponse apiResponse; + + @Mock + private UserRepo userRepo; + + @Mock + private SimpMessagingTemplate simpMessagingTemplate; + + @InjectMocks + private UserController userController; + + @Before + public void setUp() { + when(userRepo.findAll()).thenReturn(mockUserList); + when(userRepo.save(any(User.class))).thenReturn(testUser1); + doNothing().when(simpMessagingTemplate).convertAndSend(any(String.class), any(Object.class)); + } + + @Test + public void testCredentials() { + apiResponse = userController.credentials(TEST_CREDENTIALS_1); + assertEquals("Unable to get user credentials", SUCCESS, apiResponse.getMeta().getStatus()); + } + + @Test + @SuppressWarnings("unchecked") + public void testAllUsers() throws Exception { + apiResponse = userController.allUsers(); + assertEquals("Request for users was unsuccessful", SUCCESS, apiResponse.getMeta().getStatus()); + assertEquals("Number of users was not correct", 2, ((ArrayList) apiResponse.getPayload().get("ArrayList")).size()); + } + + @Test + public void testUpdateUser() throws Exception { + apiResponse = userController.updateUser(testUser1); + assertEquals("User was not successfully updated", SUCCESS, apiResponse.getMeta().getStatus()); + } +} diff --git a/src/test/java/edu/tamu/app/model/FeatureProposalTest.java b/src/test/java/edu/tamu/app/model/FeatureProposalTest.java index 0a053d4..e8a23a0 100644 --- a/src/test/java/edu/tamu/app/model/FeatureProposalTest.java +++ b/src/test/java/edu/tamu/app/model/FeatureProposalTest.java @@ -13,7 +13,6 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.dao.DataIntegrityViolationException; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.StatusApplication; @@ -26,7 +25,6 @@ import edu.tamu.app.model.repo.UserRepo; import edu.tamu.weaver.auth.model.Credentials; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { StatusApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class FeatureProposalTest { diff --git a/src/test/java/edu/tamu/app/model/IdeaTest.java b/src/test/java/edu/tamu/app/model/IdeaTest.java index 83c7237..0986cf0 100644 --- a/src/test/java/edu/tamu/app/model/IdeaTest.java +++ b/src/test/java/edu/tamu/app/model/IdeaTest.java @@ -11,7 +11,6 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.dao.DataIntegrityViolationException; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.StatusApplication; @@ -23,7 +22,6 @@ import edu.tamu.app.model.repo.UserRepo; import edu.tamu.weaver.auth.model.Credentials; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { StatusApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class IdeaTest { diff --git a/src/test/java/edu/tamu/app/model/NoteTest.java b/src/test/java/edu/tamu/app/model/NoteTest.java index 314970d..56eef8e 100644 --- a/src/test/java/edu/tamu/app/model/NoteTest.java +++ b/src/test/java/edu/tamu/app/model/NoteTest.java @@ -11,7 +11,6 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.dao.DataIntegrityViolationException; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.StatusApplication; @@ -24,7 +23,6 @@ import edu.tamu.app.model.repo.UserRepo; import edu.tamu.weaver.auth.model.Credentials; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { StatusApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class NoteTest { diff --git a/src/test/java/edu/tamu/app/model/NotificationTest.java b/src/test/java/edu/tamu/app/model/NotificationTest.java index bfd5bd1..8a5d884 100644 --- a/src/test/java/edu/tamu/app/model/NotificationTest.java +++ b/src/test/java/edu/tamu/app/model/NotificationTest.java @@ -12,14 +12,12 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.dao.DataIntegrityViolationException; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.StatusApplication; import edu.tamu.app.enums.NotificationLocation; import edu.tamu.app.model.repo.NotificationRepo; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { StatusApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class NotificationTest { diff --git a/src/test/java/edu/tamu/app/model/ServiceTest.java b/src/test/java/edu/tamu/app/model/ServiceTest.java index cae2b5c..d65b11b 100644 --- a/src/test/java/edu/tamu/app/model/ServiceTest.java +++ b/src/test/java/edu/tamu/app/model/ServiceTest.java @@ -12,7 +12,6 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.dao.DataIntegrityViolationException; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.StatusApplication; @@ -22,7 +21,6 @@ import edu.tamu.app.model.repo.UserRepo; import edu.tamu.weaver.auth.model.Credentials; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { StatusApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class ServiceTest { diff --git a/src/test/java/edu/tamu/app/model/UserTest.java b/src/test/java/edu/tamu/app/model/UserTest.java index e484814..cef7b13 100644 --- a/src/test/java/edu/tamu/app/model/UserTest.java +++ b/src/test/java/edu/tamu/app/model/UserTest.java @@ -1,8 +1,11 @@ package edu.tamu.app.model; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import java.util.Collection; import java.util.List; +import java.util.Optional; import org.junit.After; import org.junit.Before; @@ -11,7 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.test.context.ActiveProfiles; +import org.springframework.security.core.GrantedAuthority; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.StatusApplication; @@ -19,13 +22,15 @@ import edu.tamu.app.model.repo.UserRepo; import edu.tamu.weaver.auth.model.Credentials; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { StatusApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class UserTest { + @Autowired + private UserRepo userRepo; + private static final Credentials TEST_CREDENTIALS = new Credentials(); - { + static { TEST_CREDENTIALS.setUin("123456789"); TEST_CREDENTIALS.setEmail("aggieJack@tamu.edu"); TEST_CREDENTIALS.setFirstName("Aggie"); @@ -33,9 +38,6 @@ public class UserTest { TEST_CREDENTIALS.setRole("ROLE_USER"); } - @Autowired - private UserRepo userRepo; - @Before public void setUp() { userRepo.deleteAll(); @@ -46,9 +48,9 @@ public void testMethod() { // Test create user User testUser1 = userRepo.create(TEST_CREDENTIALS.getUin(), TEST_CREDENTIALS.getEmail(), TEST_CREDENTIALS.getFirstName(), TEST_CREDENTIALS.getLastName(), Role.valueOf(TEST_CREDENTIALS.getRole())); + Optional assertUser = userRepo.findByUsername("123456789"); - User assertUser = userRepo.findByUsername("123456789").get(); - assertEquals("Test User1 was not added.", testUser1.getUsername(), assertUser.getUsername()); + assertEquals("Test User1 was not added.", testUser1.getUsername(), assertUser.get().getUsername()); // Test disallow duplicate UINs userRepo.create(TEST_CREDENTIALS.getUin(), TEST_CREDENTIALS.getEmail(), TEST_CREDENTIALS.getFirstName(), TEST_CREDENTIALS.getLastName(), Role.valueOf(TEST_CREDENTIALS.getRole())); @@ -59,6 +61,24 @@ public void testMethod() { userRepo.delete(testUser1); allUsers = (List) userRepo.findAll(); assertEquals("Test User1 was not removed.", 0, allUsers.size()); + + } + + @Test + public void testGetAuthorities() { + User testUser1 = userRepo.create(TEST_CREDENTIALS.getUin(), TEST_CREDENTIALS.getEmail(), TEST_CREDENTIALS.getFirstName(), TEST_CREDENTIALS.getLastName(), Role.valueOf(TEST_CREDENTIALS.getRole())); + Collection authorities = testUser1.getAuthorities(); + assertNotNull(authorities); + } + + @Test + public void testStaticUtilityMethods() { + User testUser1 = userRepo.create(TEST_CREDENTIALS.getUin(), TEST_CREDENTIALS.getEmail(), TEST_CREDENTIALS.getFirstName(), TEST_CREDENTIALS.getLastName(), Role.valueOf(TEST_CREDENTIALS.getRole())); + assertEquals("Value was not false", false, testUser1.isAccountNonExpired()); + assertEquals("Value was not false", false, testUser1.isAccountNonLocked()); + assertEquals("Value was not false", false, testUser1.isCredentialsNonExpired()); + assertEquals("Value was not true", true, testUser1.isEnabled()); + assertEquals("Value was not null", null, testUser1.getPassword()); } @After diff --git a/src/test/java/edu/tamu/app/model/impl/ShibTest.java b/src/test/java/edu/tamu/app/model/impl/ShibTest.java index 0f70c6f..52b0e83 100644 --- a/src/test/java/edu/tamu/app/model/impl/ShibTest.java +++ b/src/test/java/edu/tamu/app/model/impl/ShibTest.java @@ -11,13 +11,11 @@ import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import edu.tamu.app.StatusApplication; import edu.tamu.weaver.auth.model.Credentials; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { StatusApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class ShibTest { diff --git a/src/test/java/edu/tamu/app/service/ProjectServiceTest.java b/src/test/java/edu/tamu/app/service/ProjectServiceTest.java index 3731ade..361cd2a 100644 --- a/src/test/java/edu/tamu/app/service/ProjectServiceTest.java +++ b/src/test/java/edu/tamu/app/service/ProjectServiceTest.java @@ -40,7 +40,6 @@ import edu.tamu.weaver.response.ApiResponse; import edu.tamu.weaver.response.ApiStatus; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { StatusApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class ProjectServiceTest { diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index 5e6ee55..55e7d71 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -6,6 +6,8 @@ security.basic.enabled: false spring.template.cache: false +spring.profiles: test +spring.profiles.active:test spring.datasource.username: spring spring.datasource.password: spring