@Override public void loadChildren(PermissionNode parent, LoadOptions options, LoadCallback callback) { Collection<String> resourceIds = options.getResourceIds(); int maxNodes = options.getMaxNodes(); if (searchService != null) { if (resourceIds != null) { searchService.call((Collection<Repository> repositories) -> { List<PermissionNode> children = buildPermissionNodes(repositories); callback.afterLoad(children); }).searchById(resourceIds); } else { String pattern = options.getNodeNamePattern(); searchService.call((Collection<Repository> repositories) -> { List<PermissionNode> children = buildPermissionNodes(repositories); callback.afterLoad(children); }).searchByAlias(pattern, maxNodes, false); } } else { callback.afterLoad(Collections.emptyList()); } }
@Before public void setup() { permissionManager = new DefaultPermissionManager(); treeProvider = new RepositoryTreeProvider(permissionManager, new CallerMock<>(searchService)); rootNode = treeProvider.buildRootNode(); rootNode.setPermissionTree(permissionTree); when(repo1.getIdentifier()).thenReturn("r1"); when(repo2.getIdentifier()).thenReturn("r2"); when(repo1.getAlias()).thenReturn("r1"); when(repo2.getAlias()).thenReturn("r2"); when(repo1.getResourceType()).thenReturn(Repository.RESOURCE_TYPE); when(repo2.getResourceType()).thenReturn(Repository.RESOURCE_TYPE); when(permissionTree.getChildrenResourceIds(any())).thenReturn(null); when(searchService.searchByAlias(anyString(), anyInt(), anyBoolean())).thenReturn(Arrays.asList(repo1, repo2)); }
@Before public void setup() { permissionManager = new DefaultPermissionManager(); treeProvider = new RepositoryTreeProvider(permissionManager, new CallerMock<>(searchService)); rootNode = treeProvider.buildRootNode(); rootNode.setPermissionTree(permissionTree); when(repo1.getIdentifier()).thenReturn("r1"); when(repo2.getIdentifier()).thenReturn("r2"); when(repo1.getAlias()).thenReturn("r1"); when(repo2.getAlias()).thenReturn("r2"); when(repo1.getResourceType()).thenReturn(Repository.RESOURCE_TYPE); when(repo2.getResourceType()).thenReturn(Repository.RESOURCE_TYPE); when(permissionTree.getChildrenResourceIds(any())).thenReturn(null); when(searchService.searchByAlias(anyString(), anyInt(), anyBoolean())).thenReturn(Arrays.asList(repo1, repo2)); }
@Override public void loadChildren(PermissionNode parent, LoadOptions options, LoadCallback callback) { Collection<String> resourceIds = options.getResourceIds(); int maxNodes = options.getMaxNodes(); if (searchService != null) { if (resourceIds != null) { searchService.call((Collection<Repository> repositories) -> { List<PermissionNode> children = buildPermissionNodes(repositories); callback.afterLoad(children); }).searchById(resourceIds); } else { String pattern = options.getNodeNamePattern(); searchService.call((Collection<Repository> repositories) -> { List<PermissionNode> children = buildPermissionNodes(repositories); callback.afterLoad(children); }).searchByAlias(pattern, maxNodes, false); } } else { callback.afterLoad(Collections.emptyList()); } }
@Test public void testChildrenNodes() { rootNode.expand(children -> { verify(searchService).searchByAlias(anyString(), anyInt(), anyBoolean()); for (PermissionNode child : children) { List<Permission> permissionList = child.getPermissionList(); assertEquals(permissionList.size(), 3); checkDependencies(child); List<String> permissionNames = permissionList.stream() .map(Permission::getName) .collect(Collectors.toList()); assertTrue(permissionNames.contains("repository.read." + child.getNodeName())); assertTrue(permissionNames.contains("repository.update." + child.getNodeName())); assertTrue(permissionNames.contains("repository.delete." + child.getNodeName())); assertEquals(child.getPermissionList().size(), 3); checkDependencies(child); } }); }
@Test public void testChildrenNodes() { rootNode.expand(children -> { verify(searchService).searchByAlias(anyString(), anyInt(), anyBoolean()); for (PermissionNode child : children) { List<Permission> permissionList = child.getPermissionList(); assertEquals(permissionList.size(), 4); checkDependencies(child, 3); List<String> permissionNames = permissionList.stream() .map(Permission::getName) .collect(Collectors.toList()); assertTrue(permissionNames.contains("repository.read." + child.getNodeName())); assertTrue(permissionNames.contains("repository.update." + child.getNodeName())); assertTrue(permissionNames.contains("repository.delete." + child.getNodeName())); assertTrue(permissionNames.contains("repository.build." + child.getNodeName())); assertEquals(child.getPermissionList().size(), 4); checkDependencies(child, 3); } }); }