aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java/org/berzerkula/builddb/controllers/BuilddbAccountControllerTest.java
diff options
context:
space:
mode:
authorWilliam Harrington <kb0iic@berzerkula.org>2025-02-12 20:21:11 -0600
committerWilliam Harrington <kb0iic@berzerkula.org>2025-02-12 20:21:11 -0600
commitd4708d14a4e739d835ae75885c4f323d23e65c58 (patch)
tree7b235d29396e8a36fe02faf94641f4cab4ab713c /src/test/java/org/berzerkula/builddb/controllers/BuilddbAccountControllerTest.java
parent2908dc790f55644b26c1bb7398372d08ff4feef7 (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.java137
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());
+ }
+
+}