package it.inaf.ia2.gms.controller; import it.inaf.ia2.gms.authn.SessionData; import it.inaf.ia2.gms.model.GroupNode; import it.inaf.ia2.gms.model.Permission; import it.inaf.ia2.gms.model.request.TabRequest; import it.inaf.ia2.gms.model.response.GroupsTabResponse; import it.inaf.ia2.gms.model.response.PaginatedData; import it.inaf.ia2.gms.persistence.model.GroupEntity; import it.inaf.ia2.gms.service.GroupsService; import it.inaf.ia2.gms.service.GroupsTreeBuilder; import it.inaf.ia2.gms.service.PermissionsService; import java.util.ArrayList; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import org.junit.Test; import org.junit.runner.RunWith; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import org.mockito.InjectMocks; import org.mockito.Mock; import static org.mockito.Mockito.when; import org.mockito.junit.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) public class GroupsTabResponseBuilderTest { @Mock private SessionData session; @Mock private GroupsService groupsService; @Mock private PermissionsService permissionsService; @Mock private GroupsTreeBuilder groupsTreeBuilder; @InjectMocks private GroupsTabResponseBuilder groupsTabResponseBuilder; @Test public void testGetGroupsTab() { when(session.getUserId()).thenReturn("admin_id"); GroupEntity root = new GroupEntity(); root.setId("ROOT"); root.setName("ROOT"); root.setPath(""); when(groupsService.getGroupById(eq("ROOT"))).thenReturn(root); when(permissionsService.getUserPermissionForGroup(eq(root), eq("admin_id"))) .thenReturn(Permission.ADMIN); PaginatedData groupsPanel = new PaginatedData<>(new ArrayList<>(), 1, 10); when(groupsTreeBuilder.listSubGroups(eq("ROOT"), eq("admin_id"), any())).thenReturn(groupsPanel); TabRequest request = new TabRequest(); request.setGroupId("ROOT"); request.setPaginatorPage(1); request.setPaginatorPageSize(10); GroupsTabResponse response = groupsTabResponseBuilder.getGroupsTab(request); assertNotNull(response.getBreadcrumbs()); assertNotNull(response.getGroupsPanel()); assertEquals(Permission.ADMIN, response.getPermission()); } }