diff --git a/pom.xml b/pom.xml index 1326d647..5d3446f6 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ - + edu.tamu.app.ProjectApplication war diff --git a/src/main/java/edu/tamu/app/ProjectInitialization.java b/src/main/java/edu/tamu/app/ProjectInitialization.java index 3396ad46..e347d294 100644 --- a/src/main/java/edu/tamu/app/ProjectInitialization.java +++ b/src/main/java/edu/tamu/app/ProjectInitialization.java @@ -9,7 +9,6 @@ import edu.tamu.app.service.registry.ManagementBeanRegistry; @Component -@Profile("!test") public class ProjectInitialization implements CommandLineRunner { @Autowired diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 0900e8a2..f979ce51 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -6,6 +6,9 @@ security.basic.enabled: false spring.template.cache: false +spring.profiles: production +spring.profiles.active: production + spring.datasource.username: spring spring.datasource.password: spring 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 00000000..20d06eff --- /dev/null +++ b/src/test/java/edu/tamu/app/auth/model/AppUserDetailsTest.java @@ -0,0 +1,33 @@ +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.ActiveProfiles; +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 00000000..81d60b75 --- /dev/null +++ b/src/test/java/edu/tamu/app/auth/service/AppUserCredentialsServiceTest.java @@ -0,0 +1,117 @@ +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.ActiveProfiles; +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/controller/ProjectControllerTest.java b/src/test/java/edu/tamu/app/controller/ProjectControllerTest.java index 84eab14e..6fc08b91 100644 --- a/src/test/java/edu/tamu/app/controller/ProjectControllerTest.java +++ b/src/test/java/edu/tamu/app/controller/ProjectControllerTest.java @@ -39,7 +39,6 @@ import edu.tamu.app.utility.JsonNodeUtility; import edu.tamu.weaver.response.ApiResponse; -@ActiveProfiles("test") @RunWith(SpringRunner.class) public class ProjectControllerTest { diff --git a/src/test/java/edu/tamu/app/controller/VersionManagementSoftwareControllerTest.java b/src/test/java/edu/tamu/app/controller/VersionManagementSoftwareControllerTest.java index e03b8eee..634b0469 100644 --- a/src/test/java/edu/tamu/app/controller/VersionManagementSoftwareControllerTest.java +++ b/src/test/java/edu/tamu/app/controller/VersionManagementSoftwareControllerTest.java @@ -24,7 +24,6 @@ import edu.tamu.app.model.repo.VersionManagementSoftwareRepo; import edu.tamu.weaver.response.ApiResponse; -@ActiveProfiles("test") @RunWith(SpringRunner.class) public class VersionManagementSoftwareControllerTest { diff --git a/src/test/java/edu/tamu/app/model/ProjectTest.java b/src/test/java/edu/tamu/app/model/ProjectTest.java index 81283744..3c21f9cf 100644 --- a/src/test/java/edu/tamu/app/model/ProjectTest.java +++ b/src/test/java/edu/tamu/app/model/ProjectTest.java @@ -20,7 +20,6 @@ import edu.tamu.app.model.repo.ProjectRepo; import edu.tamu.app.model.repo.VersionManagementSoftwareRepo; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { ProjectApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class ProjectTest { diff --git a/src/test/java/edu/tamu/app/model/UserTest.java b/src/test/java/edu/tamu/app/model/UserTest.java index c1e9e3a5..087a0d73 100644 --- a/src/test/java/edu/tamu/app/model/UserTest.java +++ b/src/test/java/edu/tamu/app/model/UserTest.java @@ -20,7 +20,6 @@ import edu.tamu.app.model.repo.UserRepo; import edu.tamu.weaver.auth.model.Credentials; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { ProjectApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class UserTest { diff --git a/src/test/java/edu/tamu/app/service/TemplateServiceTest.java b/src/test/java/edu/tamu/app/service/TemplateServiceTest.java index 81cbedcc..1d8b2a17 100644 --- a/src/test/java/edu/tamu/app/service/TemplateServiceTest.java +++ b/src/test/java/edu/tamu/app/service/TemplateServiceTest.java @@ -24,7 +24,6 @@ import edu.tamu.app.ProjectApplication; import edu.tamu.app.model.request.FeatureRequest; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { ProjectApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class TemplateServiceTest { diff --git a/src/test/java/edu/tamu/app/service/VersionOneServiceTest.java b/src/test/java/edu/tamu/app/service/VersionOneServiceTest.java index 31358648..9358db1c 100644 --- a/src/test/java/edu/tamu/app/service/VersionOneServiceTest.java +++ b/src/test/java/edu/tamu/app/service/VersionOneServiceTest.java @@ -17,11 +17,13 @@ import org.springframework.core.io.ClassPathResource; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.web.WebAppConfiguration; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import edu.tamu.app.ProjectApplication; +import edu.tamu.app.ProjectInitialization; import edu.tamu.app.enums.ServiceType; import edu.tamu.app.model.VersionManagementSoftware; import edu.tamu.app.model.repo.ProjectRepo; @@ -32,7 +34,6 @@ import edu.tamu.app.service.versioning.VersionOneService; import edu.tamu.app.utility.JsonNodeUtility; -@ActiveProfiles("test") @RunWith(SpringRunner.class) @SpringBootTest(classes = { ProjectApplication.class }, webEnvironment = WebEnvironment.DEFINED_PORT) public class VersionOneServiceTest { diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index 89e44875..afa17449 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -6,6 +6,9 @@ security.basic.enabled: false spring.template.cache: false +spring.profiles: test +spring.profiles.active:test + spring.datasource.username: spring spring.datasource.password: spring