Commit e9be2eb5 authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Bugfix group creation

parent 467aa40a
......@@ -55,7 +55,9 @@ public class GroupsController {
@PostMapping(value = "/group", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<PaginatedData<GroupNode>> createGroup(@Valid @RequestBody AddGroupRequest request) {
GroupEntity parent = groupsManager.createGroup(request.getParentGroupId(), request.getNewGroupName(), request.isLeaf());
GroupEntity parent = groupsManager.getGroupById(request.getParentGroupId());
groupsManager.createGroup(parent, request.getNewGroupName(), request.isLeaf());
PaginatedData<GroupNode> groupsPanel = getGroupsPanel(parent, request);
......@@ -65,7 +67,9 @@ public class GroupsController {
@PutMapping(value = "/group/{groupId}", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<PaginatedData<GroupNode>> updateGroup(@PathVariable("groupId") String groupId, @Valid @RequestBody RenameGroupRequest request) {
GroupEntity parent = groupsManager.updateGroup(groupId, request.getNewGroupName(), request.isLeaf());
GroupEntity updatedGroup = groupsManager.updateGroup(groupId, request.getNewGroupName(), request.isLeaf());
GroupEntity parent = groupsManager.getGroupByPath(updatedGroup.getParentPath());
PaginatedData<GroupNode> groupsPanel = getGroupsPanel(parent, request);
......
......@@ -31,9 +31,10 @@ public class GroupsManager {
return group;
}
public GroupEntity createGroup(String parentGroupId, String childGroupName, boolean leaf) {
GroupEntity parent = groupsService.getGroupById(parentGroupId);
return createGroup(parent, childGroupName, leaf);
public GroupEntity getGroupByPath(String path) {
GroupEntity group = groupsService.getGroupByPath(path);
verifyUserCanReadGroup(group);
return group;
}
public GroupEntity createGroup(GroupEntity parent, String childGroupName, boolean leaf) {
......@@ -44,9 +45,7 @@ public class GroupsManager {
verifyUserCanManageGroup(parent);
groupsService.addGroup(parent, childGroupName, leaf);
return parent;
return groupsService.addGroup(parent, childGroupName, leaf);
}
public GroupEntity updateGroup(String groupId, String newGroupName, boolean leaf) {
......@@ -54,9 +53,7 @@ public class GroupsManager {
GroupEntity group = groupsService.getGroupById(groupId);
verifyUserCanManageGroup(group);
GroupEntity updatedGroup = groupsService.updateGroup(group, newGroupName, leaf);
return groupsService.getGroupByPath(updatedGroup.getParentPath());
return groupsService.updateGroup(group, newGroupName, leaf);
}
public GroupEntity deleteGroup(String groupId) {
......
......@@ -19,7 +19,8 @@ import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import org.mockito.InjectMocks;
import org.mockito.Mock;
......@@ -122,11 +123,21 @@ public class JWTWebServiceControllerTest {
public void testCreateGroup() throws Exception {
when(groupsManager.getRoot()).thenReturn(root);
when(groupsManager.createGroup(any(GroupEntity.class), eq("LBT"), eq(false))).thenReturn(lbt);
when(groupsManager.createGroup(any(GroupEntity.class), eq("INAF"), eq(true))).thenReturn(inaf);
mockMvc.perform(post("/ws/jwt/group")
.param("leaf", "false")
mockMvc.perform(post("/ws/jwt/LBT.INAF")
.param("leaf", "true")
.contentType(MediaType.APPLICATION_FORM_URLENCODED))
.andExpect(status().isCreated());
verify(groupsService, times(2)).findGroupByParentAndName(any(GroupEntity.class), any());
verify(groupsManager, times(1)).createGroup(argGroupIdEq(GroupsService.ROOT), eq("LBT"), eq(false));
verify(groupsManager, times(1)).createGroup(argGroupIdEq("lbt_id"), eq("INAF"), eq(true));
}
private GroupEntity argGroupIdEq(String groupId) {
return argThat(g -> g.getId().equals(groupId));
}
@Test
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment