StudentControllerTest.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package com.example.projectback.controllers;
  2. import com.example.projectback.model.Student;
  3. import com.example.projectback.repository.StudentRepository;
  4. import org.junit.jupiter.api.Test;
  5. import org.junit.jupiter.api.extension.ExtendWith;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
  8. import org.springframework.boot.test.mock.mockito.MockBean;
  9. import org.springframework.http.MediaType;
  10. import org.springframework.test.context.junit.jupiter.SpringExtension;
  11. import org.springframework.test.web.servlet.MockMvc;
  12. import org.springframework.test.web.servlet.MvcResult;
  13. import org.springframework.test.web.servlet.RequestBuilder;
  14. import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
  15. import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
  16. import org.springframework.web.context.WebApplicationContext;
  17. import java.util.List;
  18. import static org.junit.jupiter.api.Assertions.*;
  19. import static org.mockito.Mockito.when;
  20. @ExtendWith(SpringExtension.class)
  21. @WebMvcTest(StudentController.class)
  22. class StudentControllerTest {
  23. @MockBean
  24. private StudentRepository studentRepository;
  25. @Autowired
  26. private WebApplicationContext webApplicationContext;
  27. @Autowired
  28. private MockMvc mvc;
  29. @Test
  30. void addStudent() throws Exception {
  31. mvc.perform(MockMvcRequestBuilders.post("/students").contentType(MediaType.APPLICATION_JSON)
  32. .content("{\"firstname\": \"John\", \"lastname\": \"Smith\", \"email\": \"john.smith@example.com\", \"telephone\": \"600345624\"}")).andExpect(MockMvcResultMatchers.status().isCreated());
  33. }
  34. @Test
  35. void getAllStudents() throws Exception {
  36. Student testStudent = new Student();
  37. testStudent.setFirstname("John");
  38. testStudent.setLastname("Smith");
  39. testStudent.setEmail("john.smith@example.com");
  40. testStudent.setTelephone("600345624");
  41. when(studentRepository.findAll()).thenReturn(List.of(testStudent));
  42. RequestBuilder request = MockMvcRequestBuilders.get("/students");
  43. mvc.perform(request).andExpect(MockMvcResultMatchers.status().isOk()).andExpect(MockMvcResultMatchers.jsonPath("$[0].firstname").value("John"));
  44. }
  45. }