use of org.opengrok.indexer.configuration.Group in project OpenGrok by OpenGrok.
the class ProjectHelperTest method testSynchronization.
/**
* Test if projects and groups are always reloaded fully from the env.
*
* This ensures that when the RuntimeEnvironment changes that it also
* updates the projects in the UI.
*/
@Test
public void testSynchronization() {
HashMap<String, Project> oldProjects = new HashMap<>(env.getProjects());
List<RepositoryInfo> oldRepositories = new ArrayList<>(env.getRepositories());
Set<Group> oldGroups = new TreeSet<>(env.getGroups());
Map<Project, List<RepositoryInfo>> oldMap = new TreeMap<>(getRepositoriesMap());
env.getAuthorizationFramework().removeAll();
// needed for setDirectoryName() below
env.setSourceRoot("/src");
cfg = PageConfig.get(getRequest());
helper = cfg.getProjectHelper();
// basic setup
assertEquals(40, env.getProjects().size(), "There should be 40 env projects");
assertEquals(20, env.getRepositories().size(), "There should be 20 env repositories");
assertEquals(4, env.getGroups().size(), "There should be 4 env groups");
assertEquals(8, helper.getAllUngrouped().size(), "There are 8 ungrouped projects");
assertEquals(40, helper.getAllProjects().size(), "There are 40 projects");
assertEquals(4, helper.getRepositories().size(), "There are 4 projects");
assertEquals(4, helper.getGroups().size(), "There are 4 groups");
// project
Project p = new Project("some random name not in any group");
p.setIndexed(true);
// group
Group g = new Group("some random name of a group");
// repository
Project repo = new Project("some random name not in any other group");
repo.setIndexed(true);
RepositoryInfo info = new RepoRepository();
info.setParent(repo.getName());
info.setDirectoryName(new File("/foo"));
List<RepositoryInfo> infos = getRepositoriesMap().get(repo);
if (infos == null) {
infos = new ArrayList<>();
}
infos.add(info);
getRepositoriesMap().put(repo, infos);
env.getRepositories().add(info);
env.getProjects().put("foo", p);
env.getProjects().put("bar", repo);
env.getGroups().add(g);
assertEquals(42, env.getProjects().size());
assertEquals(21, env.getRepositories().size());
assertEquals(5, env.getGroups().size());
// simulate another request
cfg = PageConfig.get(getRequest());
helper = cfg.getProjectHelper();
// check for updates
assertEquals(10, helper.getAllUngrouped().size(), "The helper state should refresh");
assertEquals(42, helper.getAllProjects().size(), "The helper state should refresh");
assertEquals(5, helper.getRepositories().size(), "The helper state should refresh");
assertEquals(5, helper.getGroups().size(), "The helper state should refresh");
setRepositoriesMap(oldMap);
env.setProjects(oldProjects);
env.setRepositories(oldRepositories);
env.setGroups(oldGroups);
}
use of org.opengrok.indexer.configuration.Group in project OpenGrok by OpenGrok.
the class ProjectHelperTest method testGetAllowedGroups.
/**
* Test of getGroups method, of class ProjectHelper.
*/
@Test
public void testGetAllowedGroups() {
Set<Group> result = helper.getGroups();
assertEquals(2, result.size());
for (Group g : result) {
assertTrue(g.getName().startsWith("allowed_"));
}
}
use of org.opengrok.indexer.configuration.Group in project OpenGrok by OpenGrok.
the class ProjectHelperExtendedTest method testHasAllowedSubgroupUnAllowedSubgroups.
@Test
public void testHasAllowedSubgroupUnAllowedSubgroups() {
Group g = getUnAllowedGroupWithSubgroups();
assertFalse(helper.hasAllowedSubgroup(g));
}
use of org.opengrok.indexer.configuration.Group in project OpenGrok by OpenGrok.
the class ProjectHelperTestBase method setUp.
@BeforeEach
public void setUp() {
assertEquals(4, env.getGroups().size(), "Should contain 4 groups");
assertEquals(40, env.getProjects().size(), "Should contain 40 project");
assertEquals(20, env.getRepositories().size(), "Should contain 20 repositories");
assertNotNull(env.getProjectRepositoriesMap(), "Repository map should not be null");
assertEquals(20, env.getProjectRepositoriesMap().size(), "Repository map should contain 20 project");
env.setAuthorizationFramework(new AuthorizationFramework());
env.getAuthorizationFramework().reload();
IAuthorizationPlugin plugin = new TestPlugin() {
@Override
public boolean isAllowed(HttpServletRequest request, Project project) {
return project.getName().startsWith("allowed");
}
@Override
public boolean isAllowed(HttpServletRequest request, Group group) {
return group.getName().startsWith("allowed");
}
};
invokeAddPlugin(plugin);
cfg = PageConfig.get(getRequest());
helper = cfg.getProjectHelper();
}
use of org.opengrok.indexer.configuration.Group in project OpenGrok by OpenGrok.
the class ProjectHelperTestBase method createGroups.
protected static void createGroups(int start, int cnt, boolean allowed, List<RepositoryInfo> rps, Map<Project, List<RepositoryInfo>> map, Map<String, Project> prjs, List<Group> grps) {
for (int i = start; i < start + cnt; i++) {
Group g = new Group((allowed ? "allowed_" : "") + "group_" + i);
String pattern = "";
pattern += createProject(i, 1, true, false, false, rps, prjs, map).getName() + "|";
pattern += createProject(i, 2, true, false, false, rps, prjs, map).getName() + "|";
pattern += createProject(i, 1, true, true, false, rps, prjs, map).getName() + "|";
pattern += createProject(i, 2, true, true, false, rps, prjs, map).getName() + "|";
pattern += createRepository(i, 1, 1, true, false, rps, prjs, map).getName() + "|";
pattern += createRepository(i, 2, 1, true, false, rps, prjs, map).getName() + "|";
pattern += createRepository(i, 1, 1, true, true, rps, prjs, map).getName() + "|";
pattern += createRepository(i, 2, 1, true, true, rps, prjs, map).getName();
g.setPattern(pattern);
grps.add(g);
}
}
Aggregations