From a76c88489ad6ad5886b7a31b7bff0829c8e819f7 Mon Sep 17 00:00:00 2001 From: Gustavo Monteiro Date: Tue, 31 Jul 2018 00:28:38 -0300 Subject: [PATCH] Add initial tests for Authentication endpoint. --- pom.xml | 52 +++++++------ .../controllers/AuthenticationController.java | 2 +- .../java/quem/me/ajuda/models/Student.java | 8 ++ .../me/ajuda/QuemMeAjudaApplicationTests.java | 16 ---- .../AuthenticationControllerTest.java | 75 +++++++++++++++++++ 5 files changed, 114 insertions(+), 39 deletions(-) delete mode 100644 src/test/java/quem/me/ajuda/QuemMeAjudaApplicationTests.java create mode 100644 src/test/java/quem/me/ajuda/controllers/AuthenticationControllerTest.java diff --git a/pom.xml b/pom.xml index a3c1f7a..8326192 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,6 @@ - 4.0.0 @@ -15,7 +16,7 @@ org.springframework.boot spring-boot-starter-parent 2.0.2.RELEASE - + @@ -28,12 +29,12 @@ org.springframework.boot spring-boot-starter-actuator - - - javax.xml.bind - jaxb-api - - + + + javax.xml.bind + jaxb-api + + org.springframework.boot @@ -78,28 +79,35 @@ spring-security-test test - + - javax.xml.bind - jaxb-api - 2.3.0 + javax.xml.bind + jaxb-api + 2.3.0 - + - org.projectlombok - lombok - 1.16.22 - provided - + org.projectlombok + lombok + 1.16.22 + provided + - io.jsonwebtoken - jjwt - 0.9.0 + io.jsonwebtoken + jjwt + 0.9.0 - + + + org.assertj + assertj-core + test + + + diff --git a/src/main/java/quem/me/ajuda/controllers/AuthenticationController.java b/src/main/java/quem/me/ajuda/controllers/AuthenticationController.java index 085d533..62c9a5b 100644 --- a/src/main/java/quem/me/ajuda/controllers/AuthenticationController.java +++ b/src/main/java/quem/me/ajuda/controllers/AuthenticationController.java @@ -18,7 +18,7 @@ @CrossOrigin @RestController -@RequestMapping(path = Endpoints.LOGIN_ENDPOINT) +@RequestMapping(Endpoints.LOGIN_ENDPOINT) public class AuthenticationController { @Autowired diff --git a/src/main/java/quem/me/ajuda/models/Student.java b/src/main/java/quem/me/ajuda/models/Student.java index 8d04792..97bf528 100644 --- a/src/main/java/quem/me/ajuda/models/Student.java +++ b/src/main/java/quem/me/ajuda/models/Student.java @@ -53,4 +53,12 @@ public class Student { @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "tutor_info_id") private TutorInfo tutorInfo; + + public Student(String registration, String name, String phone, String email, String password) { + this.registration = registration; + this.name = name; + this.phone = phone; + this.email = email; + this.password = password; + } } diff --git a/src/test/java/quem/me/ajuda/QuemMeAjudaApplicationTests.java b/src/test/java/quem/me/ajuda/QuemMeAjudaApplicationTests.java deleted file mode 100644 index c957aa7..0000000 --- a/src/test/java/quem/me/ajuda/QuemMeAjudaApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package quem.me.ajuda; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class QuemMeAjudaApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/src/test/java/quem/me/ajuda/controllers/AuthenticationControllerTest.java b/src/test/java/quem/me/ajuda/controllers/AuthenticationControllerTest.java new file mode 100644 index 0000000..99babe6 --- /dev/null +++ b/src/test/java/quem/me/ajuda/controllers/AuthenticationControllerTest.java @@ -0,0 +1,75 @@ +/** + * + */ +package quem.me.ajuda.controllers; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.platform.runner.JUnitPlatform; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.web.servlet.MockMvc; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import quem.me.ajuda.constants.Endpoints; +import quem.me.ajuda.models.Student; +import quem.me.ajuda.services.StudentService; + +/** + * + */ +@SpringBootTest +@RunWith(JUnitPlatform.class) +@ExtendWith(SpringExtension.class) +@TestInstance(Lifecycle.PER_CLASS) +class AuthenticationControllerTest { + private final String ENDPOINT = "/".concat(Endpoints.LOGIN_ENDPOINT); + + private Student testUser; + + private MockMvc mockMvc; + + @Autowired + private StudentService studentService; + + @Autowired + private ObjectMapper objectMapper; + + /** + * + */ + @BeforeAll + void setUpAll() { + this.mockMvc = standaloneSetup(AuthenticationController.class).build(); + } + + @BeforeEach + void setUp() { + testUser = new Student("user", "pass", "phone", "email", "password"); + this.studentService.create(testUser); + } + + /** + * @throws Exception + */ + @Test + void testLoginSucessfully() throws Exception { + mockMvc.perform(post(ENDPOINT) + .contentType(MediaType.APPLICATION_JSON) + .content(objectMapper.writeValueAsString(testUser))) + .andExpect(status().isOk()); + } + +}