diff --git a/src/test/java/com/example/demo/DemoApplicationTests.java b/src/test/java/com/example/demo/DemoApplicationTests.java index a98cad0..faf6a57 100644 --- a/src/test/java/com/example/demo/DemoApplicationTests.java +++ b/src/test/java/com/example/demo/DemoApplicationTests.java @@ -15,9 +15,11 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMock import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.web.servlet.MockMvc; +import javax.transaction.Transactional; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.stream.Collectors; import static org.springframework.http.MediaType.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; @@ -48,7 +50,7 @@ class DemoApplicationTests { @Test @Order(1) void shouldImportDatabase() throws Exception { - this.mvc.perform(post("/importDatabase").contentType(APPLICATION_XML_VALUE).content("1IgaBartosz Collins2JaninaKowalska126543213AnnaNowak231236454KatarzynaAdamska346451235IgaBartosz Collins6JaninaKowalska466543217AnnaNowak571236458KatarzynaAdamska686451239JaninaKowalska7965432110IgaBartosz Collins11JaninaKowalska81165432112AnnaNowak91212364513KatarzynaAdamska101364512314IgaBartosz Collins111412345615IgaBartosz Collins16JaninaKowalska121665432117AnnaNowak131712364518KatarzynaAdamska141864512319BeataBielicka151964512320CecyliaCzerwiÅ\u0084ska162064512321IgaBartosz Collins22JaninaKowalska182265432123AnnaNowak192312364512654321231236453464512346654321571236456864512379654321811654321912123645101364512311141234561216654321131712364514186451231519645123162064512317 51234561822654321192312364511112411212212352352452562461941216457214131841419411124135261947214121221352452562121641318414194")) + this.mvc.perform(post("/api/importDatabase").contentType(APPLICATION_XML_VALUE).content("1IgaBartosz Collins2JaninaKowalska126543213AnnaNowak231236454KatarzynaAdamska346451235IgaBartosz Collins6JaninaKowalska466543217AnnaNowak571236458KatarzynaAdamska686451239JaninaKowalska7965432110IgaBartosz Collins11JaninaKowalska81165432112AnnaNowak91212364513KatarzynaAdamska101364512314IgaBartosz Collins111412345615IgaBartosz Collins16JaninaKowalska121665432117AnnaNowak131712364518KatarzynaAdamska141864512319BeataBielicka151964512320CecyliaCzerwiÅ\u0084ska162064512321IgaBartosz Collins22JaninaKowalska182265432123AnnaNowak192312364512654321231236453464512346654321571236456864512379654321811654321912123645101364512311141234561216654321131712364514186451231519645123162064512317 51234561822654321192312364511112411212212352352452562461941216457214131841419411124135261947214121221352452562121641318414194")) .andDo(print()) .andExpect(status().isOk()); } @@ -56,7 +58,7 @@ class DemoApplicationTests { @Test @Order(2) void shouldExportDatabase() throws Exception { - this.mvc.perform(get("/exportDatabase")) + this.mvc.perform(get("/api/exportDatabase")) .andDo(print()) .andExpect(status().isOk()); } @@ -66,10 +68,29 @@ class DemoApplicationTests { Person person = new Person(null, "Iga", "Bartosz Collins", new Student(null, null, "123456")); person.getStudent().setPerson(person); person = personRepository.save(person); - this.mvc.perform(get("/person/"+person.getId())).andDo(print()).andExpect(status().isOk()) + this.mvc.perform(get("/api/person/"+person.getId())).andDo(print()).andExpect(status().isOk()) .andExpect(content().json("{\"name\": \"Iga\", \"surname\": \"Bartosz Collins\", \"student\": {\"personId\": "+person.getId()+", \"index\": \"123456\"}}")); } + @Test + void shouldGetAllPeople() throws Exception { + Person person = new Person(null, "Iga", "Bartosz Collins", new Student(null, null, "123456")); + person.getStudent().setPerson(person); + person = personRepository.save(person); + + Person person2 = new Person(null, "Janina", "Kowalska", new Student(null, null, "654321")); + person2.getStudent().setPerson(person2); + person2 = personRepository.save(person2); + + List people = personRepository.findAll().stream().map(Person::toDto).collect(Collectors.toList()); + String peopleJson = mapper.writeValueAsString(people); + this.mvc.perform(get("/api/person")) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(content().json(peopleJson)); + //.andExpect(content().json("[{\"name\": \"Iga\", \"surname\": \"Bartosz Collins\", \"student\": {\"personId\": "+person.getId()+", \"index\": \"123456\"}}, {\"name\": \"Janina\", \"surname\": \"Kowalska\", \"student\": {\"personId\": "+person2.getId()+", \"index\": \"654321\"}}]")); + } + @Test void shouldUpdatePerson() throws Exception { Person person = new Person(null, "Iga", "Bartosz Collins", new Student(null, null, "123456")); @@ -79,7 +100,7 @@ class DemoApplicationTests { String requestJson = mapper.writeValueAsString(personDto); - this.mvc.perform(put("/person").contentType(APPLICATION_JSON).content(requestJson)).andDo(print()).andExpect(status().isOk()) + this.mvc.perform(put("/api/person").contentType(APPLICATION_JSON).content(requestJson)).andDo(print()).andExpect(status().isOk()) .andExpect(content().json("{\"name\": \"Janina\", \"surname\": \"Kowalska\", \"student\": {\"personId\": "+person.getId()+", \"index\": \"654321\"}}")); } @@ -88,7 +109,7 @@ class DemoApplicationTests { PersonDto personDto = new PersonDto(null, "Janina", "Kowalska", new StudentDto(null, null, "654321")); String requestJson = mapper.writeValueAsString(personDto); - this.mvc.perform(post("/person").contentType(APPLICATION_JSON).content(requestJson)).andDo(print()) + this.mvc.perform(post("/api/person").contentType(APPLICATION_JSON).content(requestJson)).andDo(print()) .andExpect(status().isOk()) .andExpect(content().json("{\"name\": \"Janina\", \"surname\": \"Kowalska\", \"student\": {\"index\": \"654321\"}}")); } @@ -102,7 +123,7 @@ class DemoApplicationTests { String requestJson = mapper.writeValueAsString(personDto); - this.mvc.perform(put("/person").contentType(APPLICATION_JSON).content(requestJson)) + this.mvc.perform(put("/api/person").contentType(APPLICATION_JSON).content(requestJson)) .andDo(print()) .andExpect(status().isBadRequest()); } @@ -112,7 +133,7 @@ class DemoApplicationTests { PersonDto personDto = new PersonDto(null, "Janina", "Kowalska", new StudentDto(null, null, "ert654321")); String requestJson = mapper.writeValueAsString(personDto); - this.mvc.perform(post("/person").contentType(APPLICATION_JSON).content(requestJson)) + this.mvc.perform(post("/api/person").contentType(APPLICATION_JSON).content(requestJson)) .andDo(print()) .andExpect(status().isBadRequest()); } @@ -122,7 +143,7 @@ class DemoApplicationTests { Person person = new Person(null, "Iga", "Bartosz Collins", new Student(null, null, "123456")); person.getStudent().setPerson(person); personRepository.save(person); - this.mvc.perform(delete("/person/"+person.getId())).andDo(print()).andExpect(status().isOk()); + this.mvc.perform(delete("/api/person/"+person.getId())).andDo(print()).andExpect(status().isOk()); } @Test @@ -160,10 +181,90 @@ class DemoApplicationTests { studentsGroup.addGroupMember(groupMember2); studentsGroup.addGroupMember(groupMember3); studentsGroup = studentsGroupRepository.save(studentsGroup); - this.mvc.perform(get("/group/"+studentsGroup.getId())).andDo(print()).andExpect(status().isOk()) + this.mvc.perform(get("/api/group/"+studentsGroup.getId())).andDo(print()).andExpect(status().isOk()) .andExpect(content().json("{\"id\":"+studentsGroup.getId()+",\"groupLeaders\":[{\"id\":"+studentsGroup.getGroupLeaders().get(0).getId()+",\"personId\":"+studentsGroup.getGroupLeaders().get(0).getPerson().getId()+",\"groupId\":"+studentsGroup.getId()+"}],\"groupMembers\":[{\"id\":"+studentsGroup.getGroupMembers().get(0).getId()+",\"studentId\":"+studentsGroup.getGroupMembers().get(0).getStudent().getId()+",\"groupId\":"+studentsGroup.getId()+"},{\"id\":"+studentsGroup.getGroupMembers().get(1).getId()+",\"studentId\":"+studentsGroup.getGroupMembers().get(1).getStudent().getId()+",\"groupId\":"+studentsGroup.getId()+"},{\"id\":"+studentsGroup.getGroupMembers().get(2).getId()+",\"studentId\":"+studentsGroup.getGroupMembers().get(2).getStudent().getId()+",\"groupId\":"+studentsGroup.getId()+"}]}")); } + @Test + @Transactional + void shouldAllGroups() throws Exception { + Person person = new Person(null, "Iga", "Bartosz Collins", null); + person = personRepository.save(person); + GroupLeader groupLeader = new GroupLeader(null, person, null); + person.addGroupLeader(groupLeader); + + Person person2 = new Person(null, "Janina", "Kowalska", new Student(null, null, "654321")); + person2.getStudent().setPerson(person2); + person2 = personRepository.save(person2); + GroupMember groupMember = new GroupMember(null, person2.getStudent(), null); + person2.getStudent().addGroupMember(groupMember); + + Person person3 = new Person(null, "Anna", "Nowak", new Student(null, null, "123645")); + person3.getStudent().setPerson(person3); + person3 = personRepository.save(person3); + GroupMember groupMember2 = new GroupMember(null, person3.getStudent(), null); + person3.getStudent().addGroupMember(groupMember2); + + Person person4 = new Person(null, "Katarzyna", "Adamska", new Student(null, null, "645123")); + person4.getStudent().setPerson(person4); + person4 = personRepository.save(person4); + GroupMember groupMember3 = new GroupMember(null, person4.getStudent(), null); + person4.getStudent().addGroupMember(groupMember3); + + StudentsGroup studentsGroup = new StudentsGroup( + null, + new ArrayList<>(), + new ArrayList<>() + ); + studentsGroup.addGroupLeader(groupLeader); + studentsGroup.addGroupMember(groupMember); + studentsGroup.addGroupMember(groupMember2); + studentsGroup.addGroupMember(groupMember3); + studentsGroup = studentsGroupRepository.save(studentsGroup); + + Person person5 = new Person(null, "Iga", "Bartosz Collins", null); + person5 = personRepository.save(person); + GroupLeader groupLeader5 = new GroupLeader(null, person, null); + person5.addGroupLeader(groupLeader5); + + Person person6 = new Person(null, "Janina", "Kowalska", new Student(null, null, "654321")); + person6.getStudent().setPerson(person6); + person6 = personRepository.save(person6); + GroupMember groupMember6 = new GroupMember(null, person6.getStudent(), null); + person6.getStudent().addGroupMember(groupMember6); + + Person person7 = new Person(null, "Anna", "Nowak", new Student(null, null, "123645")); + person7.getStudent().setPerson(person7); + person7 = personRepository.save(person7); + GroupMember groupMember7 = new GroupMember(null, person7.getStudent(), null); + person7.getStudent().addGroupMember(groupMember7); + + Person person8 = new Person(null, "Katarzyna", "Adamska", new Student(null, null, "645123")); + person8.getStudent().setPerson(person8); + person8 = personRepository.save(person8); + GroupMember groupMember8 = new GroupMember(null, person8.getStudent(), null); + person8.getStudent().addGroupMember(groupMember8); + + StudentsGroup studentsGroup2 = new StudentsGroup( + null, + new ArrayList<>(), + new ArrayList<>() + ); + studentsGroup2.addGroupLeader(groupLeader5); + studentsGroup2.addGroupMember(groupMember6); + studentsGroup2.addGroupMember(groupMember7); + studentsGroup2.addGroupMember(groupMember8); + studentsGroup2 = studentsGroupRepository.save(studentsGroup2); + + List groups = studentsGroupRepository.findAll().stream().map(StudentsGroup::toDto).collect(Collectors.toList()); + String groupJson = mapper.writeValueAsString(groups); + this.mvc.perform(get("/api/group")) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(content().json(groupJson)); + //.andExpect(content().json("[{\"id\":"+studentsGroup.getId()+",\"groupLeaders\":[{\"id\":"+studentsGroup.getGroupLeaders().get(0).getId()+",\"personId\":"+studentsGroup.getGroupLeaders().get(0).getPerson().getId()+",\"groupId\":"+studentsGroup.getId()+"}],\"groupMembers\":[{\"id\":"+studentsGroup.getGroupMembers().get(0).getId()+",\"studentId\":"+studentsGroup.getGroupMembers().get(0).getStudent().getId()+",\"groupId\":"+studentsGroup.getId()+"},{\"id\":"+studentsGroup.getGroupMembers().get(1).getId()+",\"studentId\":"+studentsGroup.getGroupMembers().get(1).getStudent().getId()+",\"groupId\":"+studentsGroup.getId()+"},{\"id\":"+studentsGroup.getGroupMembers().get(2).getId()+",\"studentId\":"+studentsGroup.getGroupMembers().get(2).getStudent().getId()+",\"groupId\":"+studentsGroup.getId()+"}]}, {\"id\":"+studentsGroup2.getId()+",\"groupLeaders\":[{\"id\":"+studentsGroup2.getGroupLeaders().get(0).getId()+",\"personId\":"+studentsGroup2.getGroupLeaders().get(0).getPerson().getId()+",\"groupId\":"+studentsGroup2.getId()+"}],\"groupMembers\":[{\"id\":"+studentsGroup2.getGroupMembers().get(0).getId()+",\"studentId\":"+studentsGroup2.getGroupMembers().get(0).getStudent().getId()+",\"groupId\":"+studentsGroup2.getId()+"},{\"id\":"+studentsGroup2.getGroupMembers().get(1).getId()+",\"studentId\":"+studentsGroup2.getGroupMembers().get(1).getStudent().getId()+",\"groupId\":"+studentsGroup2.getId()+"},{\"id\":"+studentsGroup2.getGroupMembers().get(2).getId()+",\"studentId\":"+studentsGroup2.getGroupMembers().get(2).getStudent().getId()+",\"groupId\":"+studentsGroup2.getId()+"}]}]")); + } + @Test void shouldUpdateGroup() throws Exception { Person person = new Person(null, "Iga", "Bartosz Collins",null); @@ -222,7 +323,7 @@ class DemoApplicationTests { String requestJson = mapper.writeValueAsString(groupDto); - this.mvc.perform(put("/group").contentType(APPLICATION_JSON).content(requestJson)).andDo(print()).andExpect(status().isOk()) + this.mvc.perform(put("/api/group").contentType(APPLICATION_JSON).content(requestJson)).andDo(print()).andExpect(status().isOk()) .andExpect(content().json("{\"id\":"+studentsGroup.getId()+",\"groupLeaders\":[{\"personId\":"+person5.getId()+",\"groupId\":"+studentsGroup.getId()+"}],\"groupMembers\":[{\"studentId\":"+person6.getStudent().getId()+",\"groupId\":"+studentsGroup.getId()+"}]}")); } @@ -254,7 +355,7 @@ class DemoApplicationTests { String requestJson = mapper.writeValueAsString(groupDto); - this.mvc.perform(put("/group").contentType(APPLICATION_JSON).content(requestJson)) + this.mvc.perform(put("/api/group").contentType(APPLICATION_JSON).content(requestJson)) .andDo(print()) .andExpect(status().isBadRequest()); } @@ -278,7 +379,7 @@ class DemoApplicationTests { String requestJson = mapper.writeValueAsString(groupDto); - this.mvc.perform(post("/group").contentType(APPLICATION_JSON).content(requestJson)) + this.mvc.perform(post("/api/group").contentType(APPLICATION_JSON).content(requestJson)) .andDo(print()) .andExpect(status().isBadRequest()); } @@ -303,7 +404,7 @@ class DemoApplicationTests { ); String requestJson = mapper.writeValueAsString(groupDto); - this.mvc.perform(post("/group").contentType(APPLICATION_JSON).content(requestJson)).andDo(print()) + this.mvc.perform(post("/api/group").contentType(APPLICATION_JSON).content(requestJson)).andDo(print()) .andExpect(status().isOk()) .andExpect(content().json("{\"groupLeaders\":[{\"personId\":"+person.getId()+"}],\"groupMembers\":[{\"studentId\":"+person2.getStudent().getId()+"},{\"studentId\":"+person3.getStudent().getId()+"}]}")); } @@ -343,7 +444,7 @@ class DemoApplicationTests { studentsGroup.addGroupMember(groupMember2); studentsGroup.addGroupMember(groupMember3); studentsGroup = studentsGroupRepository.save(studentsGroup); - this.mvc.perform(delete("/group/"+studentsGroup.getId())).andDo(print()).andExpect(status().isOk()); + this.mvc.perform(delete("/api/group/"+studentsGroup.getId())).andDo(print()).andExpect(status().isOk()); } @Test @@ -382,7 +483,7 @@ class DemoApplicationTests { String requestJson = mapper.writeValueAsString(groupMemberDto); - this.mvc.perform(put("/group/"+studentsGroup.getId()+"/member").contentType(APPLICATION_JSON).content(requestJson)) + this.mvc.perform(put("/api/group/"+studentsGroup.getId()+"/member").contentType(APPLICATION_JSON).content(requestJson)) .andDo(print()) .andExpect(status().isOk()) .andExpect(content().json("{\"studentId\":"+person4.getStudent().getId()+",\"groupId\":"+studentsGroup.getId()+"}")); @@ -412,7 +513,7 @@ class DemoApplicationTests { String requestJson = mapper.writeValueAsString(groupMemberDto); - this.mvc.perform(put("/group/"+studentsGroup.getId()+"/member").contentType(APPLICATION_JSON).content(requestJson)) + this.mvc.perform(put("/api/group/"+studentsGroup.getId()+"/member").contentType(APPLICATION_JSON).content(requestJson)) .andDo(print()) .andExpect(status().isBadRequest()); } @@ -453,7 +554,7 @@ class DemoApplicationTests { String requestJson = mapper.writeValueAsString(groupLeaderDto); - this.mvc.perform(put("/group/"+studentsGroup.getId()+"/leader").contentType(APPLICATION_JSON).content(requestJson)) + this.mvc.perform(put("/api/group/"+studentsGroup.getId()+"/leader").contentType(APPLICATION_JSON).content(requestJson)) .andDo(print()) .andExpect(status().isOk()) .andExpect(content().json("{\"personId\":"+person4.getId()+",\"groupId\":"+studentsGroup.getId()+"}")); @@ -488,7 +589,7 @@ class DemoApplicationTests { studentsGroup.addGroupMember(groupMember2); studentsGroup = studentsGroupRepository.save(studentsGroup); - this.mvc.perform(delete("/group/"+studentsGroup.getId()+"/member/"+studentsGroup.getGroupMembers().get(0).getId())) + this.mvc.perform(delete("/api/group/"+studentsGroup.getId()+"/member/"+studentsGroup.getGroupMembers().get(0).getId())) .andDo(print()) .andExpect(status().isOk()); } @@ -522,7 +623,7 @@ class DemoApplicationTests { studentsGroup.addGroupMember(groupMember2); studentsGroup = studentsGroupRepository.save(studentsGroup); - this.mvc.perform(delete("/group/"+studentsGroup.getId()+"/leader/"+studentsGroup.getGroupLeaders().get(0).getId())) + this.mvc.perform(delete("/api/group/"+studentsGroup.getId()+"/leader/"+studentsGroup.getGroupLeaders().get(0).getId())) .andDo(print()) .andExpect(status().isOk()); }