Loading gms-ui/src/components/GroupsPanel.vue +2 −2 Original line number Original line Diff line number Diff line Loading @@ -10,11 +10,11 @@ <b-list-group-item href="#" v-on:click="openGroup(group)"> <b-list-group-item href="#" v-on:click="openGroup(group)"> <span class="float-left">{{group.groupName}}</span> <span class="float-left">{{group.groupName}}</span> <span v-if="group.permission === 'ADMIN'" class="float-right"> <span v-if="group.permission === 'ADMIN'" class="float-right"> <a href="#" v-on:click.stop="openEditGroupModal(group)" title="Edit"> <a href="#" v-on:click.stop.prevent="openEditGroupModal(group)" title="Edit"> <font-awesome-icon icon="edit"></font-awesome-icon> <font-awesome-icon icon="edit"></font-awesome-icon> </a> </a> <a href="#" v-on:click.stop="openRemoveGroupModal(group)" class="text-danger" title="Delete"> <a href="#" v-on:click.stop.prevent="openRemoveGroupModal(group)" class="text-danger" title="Delete"> <font-awesome-icon icon="trash"></font-awesome-icon> <font-awesome-icon icon="trash"></font-awesome-icon> </a> </a> </span> </span> Loading gms/src/main/java/it/inaf/ia2/gms/controller/GroupsController.java +4 −4 Original line number Original line Diff line number Diff line Loading @@ -40,7 +40,7 @@ public class GroupsController { @Autowired @Autowired private GroupsTabResponseBuilder groupsTabResponseBuilder; private GroupsTabResponseBuilder groupsTabResponseBuilder; @GetMapping(value = "/groups", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @GetMapping(value = "/groups", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<?> getGroupsTab(@Valid GroupsRequest request) { public ResponseEntity<?> getGroupsTab(@Valid GroupsRequest request) { if (request.isOnlyPanel()) { if (request.isOnlyPanel()) { // Only groupsPanel // Only groupsPanel Loading @@ -52,7 +52,7 @@ public class GroupsController { } } } } @PostMapping(value = "/group", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @PostMapping(value = "/group", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<PaginatedData<GroupNode>> createGroup(@Valid @RequestBody AddGroupRequest request) { public ResponseEntity<PaginatedData<GroupNode>> createGroup(@Valid @RequestBody AddGroupRequest request) { GroupEntity parent = groupsManager.getGroupById(request.getParentGroupId()); GroupEntity parent = groupsManager.getGroupById(request.getParentGroupId()); Loading @@ -64,7 +64,7 @@ public class GroupsController { return new ResponseEntity<>(groupsPanel, HttpStatus.CREATED); return new ResponseEntity<>(groupsPanel, HttpStatus.CREATED); } } @PutMapping(value = "/group/{groupId}", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @PutMapping(value = "/group/{groupId}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<PaginatedData<GroupNode>> updateGroup(@PathVariable("groupId") String groupId, @Valid @RequestBody RenameGroupRequest request) { public ResponseEntity<PaginatedData<GroupNode>> updateGroup(@PathVariable("groupId") String groupId, @Valid @RequestBody RenameGroupRequest request) { GroupEntity updatedGroup = groupsManager.updateGroup(groupId, request.getNewGroupName(), request.isLeaf()); GroupEntity updatedGroup = groupsManager.updateGroup(groupId, request.getNewGroupName(), request.isLeaf()); Loading @@ -76,7 +76,7 @@ public class GroupsController { return ResponseEntity.ok(groupsPanel); return ResponseEntity.ok(groupsPanel); } } @DeleteMapping(value = "/group/{groupId}", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @DeleteMapping(value = "/group/{groupId}", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<?> deleteGroup(@PathVariable("groupId") String groupId, DeleteGroupRequest request) { public ResponseEntity<?> deleteGroup(@PathVariable("groupId") String groupId, DeleteGroupRequest request) { GroupEntity parent = groupsManager.deleteGroup(groupId); GroupEntity parent = groupsManager.deleteGroup(groupId); Loading gms/src/test/java/it/inaf/ia2/gms/controller/GroupsControllerTest.java +16 −1 Original line number Original line Diff line number Diff line Loading @@ -20,14 +20,19 @@ import org.junit.Before; import org.junit.Test; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runner.RunWith; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import org.mockito.InjectMocks; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.Mockito.when; import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.http.MediaType; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MockMvc; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders; Loading Loading @@ -103,7 +108,17 @@ public class GroupsControllerTest { mockMvc.perform(post("/group") mockMvc.perform(post("/group") .content(mapper.writeValueAsString(request)) .content(mapper.writeValueAsString(request)) .contentType(MediaType.APPLICATION_JSON_UTF8)) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isCreated()); .andExpect(status().isCreated()); } } @Test public void testDeleteGroup() throws Exception { mockMvc.perform(delete("/group/id?paginatorPageSize=20&paginatorPage=1&searchFilter=")) .andDo(print()) .andExpect(status().isOk()); verify(groupsManager, times(1)).deleteGroup(eq("id")); } } } Loading
gms-ui/src/components/GroupsPanel.vue +2 −2 Original line number Original line Diff line number Diff line Loading @@ -10,11 +10,11 @@ <b-list-group-item href="#" v-on:click="openGroup(group)"> <b-list-group-item href="#" v-on:click="openGroup(group)"> <span class="float-left">{{group.groupName}}</span> <span class="float-left">{{group.groupName}}</span> <span v-if="group.permission === 'ADMIN'" class="float-right"> <span v-if="group.permission === 'ADMIN'" class="float-right"> <a href="#" v-on:click.stop="openEditGroupModal(group)" title="Edit"> <a href="#" v-on:click.stop.prevent="openEditGroupModal(group)" title="Edit"> <font-awesome-icon icon="edit"></font-awesome-icon> <font-awesome-icon icon="edit"></font-awesome-icon> </a> </a> <a href="#" v-on:click.stop="openRemoveGroupModal(group)" class="text-danger" title="Delete"> <a href="#" v-on:click.stop.prevent="openRemoveGroupModal(group)" class="text-danger" title="Delete"> <font-awesome-icon icon="trash"></font-awesome-icon> <font-awesome-icon icon="trash"></font-awesome-icon> </a> </a> </span> </span> Loading
gms/src/main/java/it/inaf/ia2/gms/controller/GroupsController.java +4 −4 Original line number Original line Diff line number Diff line Loading @@ -40,7 +40,7 @@ public class GroupsController { @Autowired @Autowired private GroupsTabResponseBuilder groupsTabResponseBuilder; private GroupsTabResponseBuilder groupsTabResponseBuilder; @GetMapping(value = "/groups", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @GetMapping(value = "/groups", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<?> getGroupsTab(@Valid GroupsRequest request) { public ResponseEntity<?> getGroupsTab(@Valid GroupsRequest request) { if (request.isOnlyPanel()) { if (request.isOnlyPanel()) { // Only groupsPanel // Only groupsPanel Loading @@ -52,7 +52,7 @@ public class GroupsController { } } } } @PostMapping(value = "/group", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @PostMapping(value = "/group", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<PaginatedData<GroupNode>> createGroup(@Valid @RequestBody AddGroupRequest request) { public ResponseEntity<PaginatedData<GroupNode>> createGroup(@Valid @RequestBody AddGroupRequest request) { GroupEntity parent = groupsManager.getGroupById(request.getParentGroupId()); GroupEntity parent = groupsManager.getGroupById(request.getParentGroupId()); Loading @@ -64,7 +64,7 @@ public class GroupsController { return new ResponseEntity<>(groupsPanel, HttpStatus.CREATED); return new ResponseEntity<>(groupsPanel, HttpStatus.CREATED); } } @PutMapping(value = "/group/{groupId}", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @PutMapping(value = "/group/{groupId}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<PaginatedData<GroupNode>> updateGroup(@PathVariable("groupId") String groupId, @Valid @RequestBody RenameGroupRequest request) { public ResponseEntity<PaginatedData<GroupNode>> updateGroup(@PathVariable("groupId") String groupId, @Valid @RequestBody RenameGroupRequest request) { GroupEntity updatedGroup = groupsManager.updateGroup(groupId, request.getNewGroupName(), request.isLeaf()); GroupEntity updatedGroup = groupsManager.updateGroup(groupId, request.getNewGroupName(), request.isLeaf()); Loading @@ -76,7 +76,7 @@ public class GroupsController { return ResponseEntity.ok(groupsPanel); return ResponseEntity.ok(groupsPanel); } } @DeleteMapping(value = "/group/{groupId}", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @DeleteMapping(value = "/group/{groupId}", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<?> deleteGroup(@PathVariable("groupId") String groupId, DeleteGroupRequest request) { public ResponseEntity<?> deleteGroup(@PathVariable("groupId") String groupId, DeleteGroupRequest request) { GroupEntity parent = groupsManager.deleteGroup(groupId); GroupEntity parent = groupsManager.deleteGroup(groupId); Loading
gms/src/test/java/it/inaf/ia2/gms/controller/GroupsControllerTest.java +16 −1 Original line number Original line Diff line number Diff line Loading @@ -20,14 +20,19 @@ import org.junit.Before; import org.junit.Test; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runner.RunWith; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import org.mockito.InjectMocks; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.Mockito.when; import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.http.MediaType; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MockMvc; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders; Loading Loading @@ -103,7 +108,17 @@ public class GroupsControllerTest { mockMvc.perform(post("/group") mockMvc.perform(post("/group") .content(mapper.writeValueAsString(request)) .content(mapper.writeValueAsString(request)) .contentType(MediaType.APPLICATION_JSON_UTF8)) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isCreated()); .andExpect(status().isCreated()); } } @Test public void testDeleteGroup() throws Exception { mockMvc.perform(delete("/group/id?paginatorPageSize=20&paginatorPage=1&searchFilter=")) .andDo(print()) .andExpect(status().isOk()); verify(groupsManager, times(1)).deleteGroup(eq("id")); } } }