From 2aa99e012d49bdd7387b2d222abef1654b55865f Mon Sep 17 00:00:00 2001 From: Mirna Gama Date: Fri, 12 Jan 2024 15:32:37 -0300 Subject: [PATCH] [R9] Unit test class for authentication controller --- .../AuthenticationControllerTest.java | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/test/java/com/mirna/hospitalmanagementapi/unit/application/controllers/AuthenticationControllerTest.java diff --git a/src/test/java/com/mirna/hospitalmanagementapi/unit/application/controllers/AuthenticationControllerTest.java b/src/test/java/com/mirna/hospitalmanagementapi/unit/application/controllers/AuthenticationControllerTest.java new file mode 100644 index 0000000..e9503b1 --- /dev/null +++ b/src/test/java/com/mirna/hospitalmanagementapi/unit/application/controllers/AuthenticationControllerTest.java @@ -0,0 +1,75 @@ +package com.mirna.hospitalmanagementapi.unit.application.controllers; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.MethodOrderer.OrderAnnotation; +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.http.MediaType; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.result.MockMvcResultHandlers; +import org.springframework.test.web.servlet.result.MockMvcResultMatchers; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.mirna.hospitalmanagementapi.domain.dtos.auth.UserDTO; + +/** + * + * @author Mirna Gama + * @version 1.0 + */ +@SpringBootTest +@AutoConfigureMockMvc(addFilters = false) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +@TestMethodOrder(OrderAnnotation.class) +@ActiveProfiles("test") +public class AuthenticationControllerTest { + + @Autowired + private MockMvc mockMvc; + + @Autowired + private ObjectMapper mapper; + + + /** + * Post the user registration + */ + @Test + @Order(1) + @DisplayName("Should post the user registration and return http status ok") + public void testPostRegister() throws Exception { + + UserDTO userDTO = new UserDTO("test", "password"); + + String userDTOContent = mapper.writeValueAsString(userDTO); + + mockMvc.perform(MockMvcRequestBuilders.post("/api/auth/register").contentType(MediaType.APPLICATION_JSON) + .characterEncoding("UTF-8").content(userDTOContent)) + .andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()); + } + + /** + * Post the user login + */ + @Test + @Order(2) + @DisplayName("Should post the user login and return http status ok") + public void testPostLogin() throws Exception { + + UserDTO userDTO = new UserDTO("test", "password"); + + String userDTOContent = mapper.writeValueAsString(userDTO); + + mockMvc.perform(MockMvcRequestBuilders.post("/api/auth/login").contentType(MediaType.APPLICATION_JSON) + .characterEncoding("UTF-8").content(userDTOContent)) + .andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()); + } + +}