diff options
author | William Harrington <kb0iic@berzerkula.org> | 2025-02-12 20:21:11 -0600 |
---|---|---|
committer | William Harrington <kb0iic@berzerkula.org> | 2025-02-12 20:21:11 -0600 |
commit | d4708d14a4e739d835ae75885c4f323d23e65c58 (patch) | |
tree | 7b235d29396e8a36fe02faf94641f4cab4ab713c /src/test/java/org/berzerkula/builddb/controllers/BuilddbAccountControllerTest.java | |
parent | 2908dc790f55644b26c1bb7398372d08ff4feef7 (diff) |
Rename test class and remove public modifiers.
Diffstat (limited to 'src/test/java/org/berzerkula/builddb/controllers/BuilddbAccountControllerTest.java')
-rw-r--r-- | src/test/java/org/berzerkula/builddb/controllers/BuilddbAccountControllerTest.java | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/src/test/java/org/berzerkula/builddb/controllers/BuilddbAccountControllerTest.java b/src/test/java/org/berzerkula/builddb/controllers/BuilddbAccountControllerTest.java new file mode 100644 index 0000000..a1ab349 --- /dev/null +++ b/src/test/java/org/berzerkula/builddb/controllers/BuilddbAccountControllerTest.java @@ -0,0 +1,137 @@ +package org.berzerkula.builddb.controllers; + +import org.berzerkula.builddb.config.SecurityConfig; +import org.berzerkula.builddb.models.AppUser; +import org.berzerkula.builddb.repositories.AppUserRepository; +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.context.annotation.Import; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.web.servlet.MockMvc; + +import java.util.Date; + +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; + +@Import(SecurityConfig.class) +@AutoConfigureMockMvc +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) + +class BuilddbAccountControllerTest { + + @Autowired + private AppUserRepository appUserRepository; + + @Autowired + private MockMvc mockMvc; + + @Test + void shouldReturnIndexOk() throws Exception { + mockMvc.perform(get("/")) + .andExpect(status().isOk()) + .andExpect(view().name("index")) + .andDo(print()); + } + + @Test + void shouldReturnLoginOk() throws Exception { + mockMvc.perform(get("/login")) + .andExpect(status().isOk()) + .andExpect(view().name("login")) + .andDo(print()); + } + + @Test + void shouldProfileRedirectToLogin() throws Exception { + mockMvc.perform(get("/profile")) + .andExpect(status().is3xxRedirection()) + .andDo(print()); + } + + @WithMockUser(roles="client") + @Test + void shouldReturnProfileView() throws Exception { + + AppUser appUser = new AppUser(); + appUser.setFirstName("John"); + appUser.setLastName("Doe"); + appUser.setEmail("test@berzerkula.org"); + appUser.setPhone("555-555-5555"); + appUser.setAddress("612 Wolf Avenue"); + appUser.setRole("client"); + appUser.setPassword("password"); + appUser.setCreatedAt(new Date()); + appUserRepository.save(appUser); + + this.mockMvc.perform(get("/profile") + .with(user("test@berzerkula.org"))) + .andExpect(status().isOk()) + .andExpect(view().name("profile")) + .andDo(print()); + } + + @Test + void shouldReturnRegisterOk() throws Exception { + mockMvc.perform(get("/register")) + .andExpect(status().isOk()) + .andExpect(view().name("register")) + .andDo(print()); + } + + @Test + void shouldRegisterRequiredValidationError() throws Exception { + mockMvc.perform(post("/register") + .with(csrf()) + .formField("firstName", "") + .formField("lastName", "") + .formField("email", "") + .formField("phone", "") + .formField("address", "") + .formField("password", "") + .formField("confirmPassword", "")) + .andExpect(status().isOk()) + .andExpect(view().name("register")) + .andDo(print()); + } + + @Test + void shouldRegisterPasswordValidationError() throws Exception { + mockMvc.perform(post("/register") + .with(csrf()) + .formField("firstName", "John") + .formField("lastName", "Doe") + .formField("email", "test@berzerkula.org") + .formField("phone", "") + .formField("address", "") + .formField("password", "password") + .formField("confirmPassword", "passwrd")) + .andExpect(status().isOk()) + .andExpect(view().name("register")) + .andDo(print()); + } + + @Test + void shouldRegisterSuccess() throws Exception { + mockMvc.perform(post("/register") + .with(csrf()) + .formField("firstName", "John") + .formField("lastName", "Doe") + .formField("email", "test@berzerkula.org") + .formField("phone", "555-555-5555") + .formField("address", "612 Wolf Avenue") + .formField("password", "password") + .formField("confirmPassword", "password")) + .andExpect(status().isOk()) + .andExpect(view().name("register")) + .andDo(print()); + } + +} |