Skip to content
Snippets Groups Projects
Commit f04deb69 authored by Petr Seidl's avatar Petr Seidl
Browse files

Update TeacherControllerTest.java

parent 66f49451
No related branches found
No related tags found
No related merge requests found
Pipeline #105918 passed
......@@ -18,6 +18,7 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
 
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
 
......@@ -61,16 +62,65 @@ class TeacherControllerTest {
 
@Test
void findAll() throws Exception {
// Testing no parameters
List<Teacher> teachers = Arrays.asList(
new Teacher(1,"Ted","Get"),
new Teacher(2,"Ned","Fes")
new Teacher(1,"Ted","Brown"),
new Teacher(2,"Ted","White"),
new Teacher(3,"Ned","Fes"),
new Teacher(4,"John","Black"),
new Teacher(5,"Peter","Black")
);
BDDMockito.given(teacherService.findAll()).willReturn(teachers);
mvc.perform(MockMvcRequestBuilders.get("/api/v1/teacher")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath("$.*.id").exists());
Assertions.assertEquals(teachers,teacherController.findAll());
Assertions.assertEquals(teachers,teacherController.findAll(null,null));
// Testing first & last name parameter
List<Teacher> teacher = Collections.singletonList(
new Teacher(3, "Ned", "Fes")
);
BDDMockito.given(teacherService.findByFirstNameAndLastName("Ned","Fes")).willReturn(teacher);
mvc.perform(MockMvcRequestBuilders.get("/api/v1/teacher?firstName=Ned&lastName=Fes")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath(
"$.*.firstName",CoreMatchers.equalTo(
Collections.singletonList("Ned"))))
.andExpect(MockMvcResultMatchers.jsonPath(
"$.*.lastName",CoreMatchers.equalTo(
Collections.singletonList("Fes"))));
Assertions.assertEquals(teacher,teacherController.findAll("Ned","Fes"));
// Testing first name prameter
List<Teacher> tedTeachers = Arrays.asList(
new Teacher(1,"Ted","Brown"),
new Teacher(2,"Ted","White")
);
BDDMockito.given(teacherService.findAllByFirstName("Ted")).willReturn(tedTeachers);
mvc.perform(MockMvcRequestBuilders.get("/api/v1/teacher?firstName=Ted")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath(
"$.*.firstName",CoreMatchers.equalTo(Arrays.asList("Ted","Ted")))
);
Assertions.assertEquals(tedTeachers,teacherController.findAll("Ted",null));
// Testing last name parameter
List<Teacher> blackTeachers = Arrays.asList(
new Teacher(4,"John","Black"),
new Teacher(5,"Peter","Black")
);
BDDMockito.given(teacherService.findAllByLastName("Black")).willReturn(blackTeachers);
mvc.perform(MockMvcRequestBuilders.get("/api/v1/teacher?lastName=Black")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.jsonPath(
"$.*.lastName",
CoreMatchers.equalTo(Arrays.asList("Black","Black"))));
Assertions.assertEquals(blackTeachers,teacherController.findAll(null,"Black"));
Mockito.verify(teacherService,Mockito.atLeastOnce()).findAll();
}
 
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment