protected RulesRepository getRepo() { return RepositorySessionUtil.getRepository(); }
@Test public void testNilUser() throws Exception { PermissionManager pm = new PermissionManager(RepositorySessionUtil.getRepository()); Map<String, List<String>> perms_ = pm.retrieveUserPermissions("nobody"); assertEquals(0, perms_.size()); perms_ = pm.retrieveUserPermissions("nobody"); assertEquals(0, perms_.size()); }
@Test public void testUpdatePerms() throws Exception { PermissionManager pm = new PermissionManager(RepositorySessionUtil.getRepository()); Map<String, List<String>> perms = new HashMap<String, List<String>>() {{ put("package.admin", new ArrayList<String>() {{add("1234567890");}}); put("package.developer", new ArrayList<String>() {{add("1"); add("2");}}); put("analyst", new ArrayList<String>() {{add("HR");}}); put("admin", new ArrayList<String>()); }}; pm.updateUserPermissions("testUpdatePermsWankle", perms); perms = pm.retrieveUserPermissions("testUpdatePermsWankle"); assertEquals(4, perms.size()); perms.remove("package.developer"); pm.updateUserPermissions("testUpdatePermsWankle", perms); perms = pm.retrieveUserPermissions("testUpdatePermsWankle"); assertEquals(3, perms.size()); }
@Test public void testIterateOverUsers() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); final List<String> names = new ArrayList<String>(); UserInfo uf = new UserInfo(repo); uf.init(repo, "michael"); uf.setProperty("random", "property", new UserInfo.Val("hi")); UserInfo.eachUser(repo, new UserInfo.Command() { public void process(String toUser) { names.add(toUser); } }); assertTrue(names.size() > 0) ; assertTrue(names.contains("michael")); }
@Test public void testEmptyUserName() throws Exception { PermissionManager pm = new PermissionManager(RepositorySessionUtil.getRepository()); Map<String, List<String>> perms_ = pm.retrieveUserPermissions(""); assertEquals(0, perms_.size()); perms_ = pm.retrieveUserPermissions(" "); assertEquals(0, perms_.size()); Map<String, List<String>> perms = new HashMap<String, List<String>>() {{ put("package.admin", new ArrayList<String>() {{add("1234567890");}}); put("package.developer", new ArrayList<String>() {{add("1"); add("2");}}); put("analyst", new ArrayList<String>() {{add("HR");}}); put("admin", new ArrayList<String>()); }}; pm.updateUserPermissions(" ", perms); pm.updateUserPermissions("", perms); pm.removeUserPermissions(""); pm.removeUserPermissions(" "); }
@Test public void testLoadArchivedAsset() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); AssetItem itemAdd = repo.loadDefaultModule().addAsset( "testArchiveBooleanFlag", "yeah" ); itemAdd.archiveItem( true ); AssetItem item = repo.loadDefaultModule().loadAsset( "testArchiveBooleanFlag" ); System.out.println( item ); assertTrue( item.isArchived() ); }
@Test public void testLoadSave() throws Exception { PermissionManager pm = new PermissionManager(RepositorySessionUtil.getRepository()); Map<String, List<String>> perms = new HashMap<String, List<String>>() {{ put("package.admin", new ArrayList<String>() {{add("1234567890");}});
@Test public void testPostNewPackage() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); RestAPI api = new RestAPI(repo); api.setAssetValidator(new AssetValidator()); api.post("/packages/testPostNewPackage/.package", new ByteArrayInputStream("qaz".getBytes()), "This is a new package"); ModuleItem pkg = repo.loadModule("testPostNewPackage"); assertEquals("qaz", pkg.getStringProperty(ModuleItem.HEADER_PROPERTY_NAME)); assertEquals("This is a new package", pkg.getCheckinComment()); }
@Test public void testGetWithSpaces() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); ModuleItem pkg = repo.createModule("testRestGetSpaces", "", ModuleItem.MODULE_FORMAT); AssetItem ass = pkg.addAsset("some space", ""); ass.updateFormat("drl"); ass.checkin("hey"); RestAPI api = new RestAPI(repo); api.setAssetValidator(new AssetValidator()); String url = "packages/testRestGetSpaces"; Response res = api.get(url); ByteArrayOutputStream out = new ByteArrayOutputStream(); res.writeData(out); assertTrue(new String(out.toByteArray()).indexOf("\\ ") > -1); url = "packages/testRestGetSpaces/some space.drl"; res = api.get(url); assertNotNull(res.lastModified); }
@Test public void testListingUsers() throws Exception { PermissionManager pm = new PermissionManager(RepositorySessionUtil.getRepository()); pm.deleteAllUsers();
@Test public void testArchiveBooleanFlag() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); AssetItem item = repo.loadDefaultModule().addAsset( "testArchiveBooleanFlag", "yeah" ); assertFalse( item.isArchived() ); item.archiveItem( true ); assertFalse( item.getNode().hasProperty( AssetItem.CONTENT_PROPERTY_NAME ) ); assertTrue( item.getNode().hasProperty( AssetItem.CONTENT_PROPERTY_ARCHIVE_FLAG ) ); assertTrue( item.isArchived() ); item.checkin( "lalalala" ); }
@Test public void testGetVersionHistory() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); ModuleItem pkg = repo.createModule("testRestGetVersionHistory", "", ModuleItem.MODULE_FORMAT); repo.save();
@Test public void testPut() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); ModuleItem pkg = repo.createModule("testRestPut", "", ModuleItem.MODULE_FORMAT); pkg.updateStringProperty("This is some header", ModuleItem.HEADER_PROPERTY_NAME);
@Test public void testGetMisc() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); RestAPI api = new RestAPI(repo); api.setAssetValidator(new AssetValidator()); api.get(""); api.get("/"); api.get("packages"); api.get("snapshots"); api.get("snapshots/defaultPackage"); }
@Test public void testVersionHistoryAndArchived() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); ModuleItem pkg = repo.createModule("testVersionHistoryAndArchived", "", ModuleItem.MODULE_FORMAT); repo.save();
@Test public void testDelete() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); ModuleItem pkg = repo.createModule("testRestDelete", "", ModuleItem.MODULE_FORMAT); pkg.updateStringProperty("This is some header", ModuleItem.HEADER_PROPERTY_NAME);
@Test public void testPost() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); ModuleItem pkg = repo.createModule("testRestPost", "", ModuleItem.MODULE_FORMAT); pkg.updateStringProperty("This is some header", ModuleItem.HEADER_PROPERTY_NAME); repo.save(); RestAPI api = new RestAPI(repo); api.setAssetValidator(new AssetValidator()); ByteArrayInputStream in = new ByteArrayInputStream("abc".getBytes()); api.post("/packages/testRestPost/asset1.drl", in, "a comment"); AssetItem a = pkg.loadAsset("asset1"); assertFalse(a.isBinary()); assertEquals("drl", a.getFormat()); assertEquals("abc", a.getContent()); assertEquals("a comment", a.getCheckinComment()); in = new ByteArrayInputStream("qed".getBytes()); api.post("/packages/testRestPost/asset2.xls", in, "a comment"); a = pkg.loadAsset("asset2"); assertTrue(a.isBinary()); String s = new String(a.getBinaryContentAsBytes()); assertEquals("qed", s); assertEquals("a comment", a.getCheckinComment()); assertEquals("xls", a.getFormat()); List<AssetItem> assets = RulesRepositoryTest.iteratorToList(repo.loadModule("testRestPost").listAssetsByFormat(new String[] {"drl", "xls"})); assertEquals(2, assets.size()); }
@Test public void testFindRulesByNameArchived() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository();
@Test public void testPersistence() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); PermissionManager pm = new PermissionManager(repo); Map<String, List<String>> perms = new HashMap<String, List<String>>() {{
@Test public void testFindArchivedAssets() throws Exception { RulesRepository repo = RepositorySessionUtil.getRepository(); repo.loadDefaultModule().addAsset( "testFindArchivedAssets1", "X" ); repo.loadDefaultModule().addAsset( "testFindArchivedAssets2", "X" ); repo.loadDefaultModule().addAsset( "testFindArchivedAssets3", "X" ); repo.loadDefaultModule().addAsset( "testFindArchivedAssets4", "X" ); AssetItem item = repo.loadDefaultModule().loadAsset( "testFindArchivedAssets1" ); assertFalse( item.isArchived() ); item.archiveItem( true ); item.checkin( "archiving item 1" ); item = repo.loadDefaultModule().loadAsset( "testFindArchivedAssets1" ); assertTrue( item.isArchived() ); item = repo.loadDefaultModule().loadAsset( "testFindArchivedAssets2" ); assertFalse( item.isArchived() ); item.archiveItem( true ); item.checkin( "archiving item 1" ); item = repo.loadDefaultModule().loadAsset( "testFindArchivedAssets2" ); assertTrue( item.isArchived() ); item = repo.loadDefaultModule().loadAsset( "testFindArchivedAssets3" ); assertFalse( item.isArchived() ); item.archiveItem( true ); item.checkin( "archiving item 1" ); item = repo.loadDefaultModule().loadAsset( "testFindArchivedAssets3" ); assertTrue( item.isArchived() ); }