private ModuleItem loadGlobalArea() { return getRepo().loadGlobalArea(); }
@Test public void testRulePackageItem() throws Exception { RulesRepository repo = getRepo(); //calls constructor ModuleItem rulePackageItem1 = repo.createModule("testRulePackage", "desc"); assertNotNull(rulePackageItem1); assertEquals("testRulePackage", rulePackageItem1.getName()); Iterator it = getRepo().listModules(); assertTrue(it.hasNext()); while (it.hasNext()) { ModuleItem pack = (ModuleItem) it.next(); if (pack.getName().equals( "testRulePackage" )) { return; } } fail("should have picked up the testRulePackage but didnt."); }
@Test public void testMiscProperties() { ModuleItem item = getRepo().createModule( "testHeader", "ya" ); updateHeader( "new header", item ); item.updateExternalURI( "boo" ); getRepo().save(); assertEquals("new header", getHeader(item)); item = getRepo().loadModule("testHeader"); assertEquals("new header", getHeader(item)); assertEquals("boo", item.getExternalURI()); }
@Test public void testIgnoreState() throws Exception { ModuleItem pack = getRepo().createModule( "package testIgnoreState", "foo" ); getRepo().createState( "x" ); AssetItem rule1 = pack.addAsset( "rule number 1", "yeah man" ); rule1.updateState( "x" ); rule1.checkin( "version0" ); AssetItem rule2 = pack.addAsset( "rule number 2", "no way" ); rule2.updateState( "x" ); rule2.checkin( "version0" ); AssetItem rule3 = pack.addAsset( "rule number 3", "yes way" ); getRepo().createState( "disabled" ); rule3.updateState( "disabled" ); rule3.checkin( "version0" ); getRepo().save(); Iterator result = pack.getAssetsWithStatus( getRepo().getState( "x" ), getRepo().getState( "disabled" ) ); List l = iteratorToList( result ); assertEquals(2, l.size()); }
@Test public void testPackageInstanceWrongNodeType() throws Exception { ModuleItem pack = getRepo().loadDefaultModule(); AssetItem rule = pack.addAsset( "packageInstanceWrongNodeType", "" ); try { new ModuleItem(this.getRepo(), rule.getNode()); fail("Can't create a package from a rule node."); } catch (RulesRepositoryException e) { assertNotNull(e.getMessage()); } }
@Test public void testDuplicatePackageName() throws Exception { ModuleItem pack = getRepo().createModule( "dupePackageTest", "testing for dupe" ); assertNotNull(pack.getName()); try { getRepo().createModule( "dupePackageTest", "this should fail" ); fail("Should not be able to add a package of the same name."); } catch (RulesRepositoryException e) { assertNotNull(e.getMessage()); } }
@Test public void testFormatOtherThanDroolsPackage() { ModuleItem rulePackageItem1 = getRepo().createModule( "testFormatOtherThanDroolsPackage", "woot"); assertNotNull(rulePackageItem1); // PACKAGE_FORMAT is the default module format assertEquals(ModuleItem.MODULE_FORMAT, rulePackageItem1.getFormat()); rulePackageItem1.updateFormat("soaservice"); ModuleItem item = getRepo().loadModule( "testFormatOtherThanDroolsPackage"); assertEquals("soaservice", item.getFormat()); }
@Test public void testLoadRulePackageItemByUUID() throws Exception { ModuleItem rulePackageItem = getRepo().createModule("testLoadRuleRuleItemByUUID", "desc"); String uuid = null; uuid = rulePackageItem.getNode().getUUID(); rulePackageItem = getRepo().loadModuleByUUID(uuid); assertNotNull(rulePackageItem); assertEquals("testLoadRuleRuleItemByUUID", rulePackageItem.getName()); // try loading rule package that was not created try { rulePackageItem = getRepo().loadModuleByUUID("01010101-0101-0101-0101-010101010101"); fail("Exception not thrown loading rule package that was not created."); } catch (RulesRepositoryException e) { // that is OK! assertNotNull(e.getMessage()); } }
@Test public void testAddAssetTrailingWhitespace() { ModuleItem pkg = getRepo().createModule("testAddAssetTrailingWhitespace","desc"); pkg.addAsset("wee ", ""); assertNotNull(pkg.loadAsset("wee")); }
@Test public void testLoadRulePackageItem() { ModuleItem rulePackageItem = getRepo().createModule("testLoadRuleRuleItem", "desc"); rulePackageItem = getRepo().loadModule("testLoadRuleRuleItem"); assertNotNull(rulePackageItem); assertEquals("testLoadRuleRuleItem", rulePackageItem.getName()); assertEquals("desc", rulePackageItem.getDescription()); assertEquals(ModuleItem.MODULE_FORMAT, rulePackageItem.getFormat()); // try loading rule package that was not created try { rulePackageItem = getRepo().loadModule("anotherRuleRuleItem"); fail("Exception not thrown loading rule package that was not created."); } catch (RulesRepositoryException e) { // that is OK! assertNotNull(e.getMessage()); } }
@Test public void testToString() { ModuleItem rulePackageItem1 = getRepo().createModule("testToStringPackage", "desc"); AssetItem ruleItem1 = rulePackageItem1.addAsset("testToStringPackage", "test lhs content" ); ruleItem1.updateContent( "test lhs content" ); assertNotNull(rulePackageItem1.toString()); }
@Test public void testPackageCheckinConfig() { ModuleItem item = getRepo().createModule( "testPackageCheckinConfig", "description" ); AssetItem rule = item.addAsset( "testPackageCheckinConfig", "w" ); rule.checkin( "goo" ); assertEquals(1, iteratorToList( item.getAssets() ).size()); updateHeader( "la", item ); item.checkin( "woot" ); updateHeader( "we", item ); item.checkin( "gah" ); // PackageItem pre = (PackageItem) item.getPrecedingVersion(); // assertNotNull(pre); // assertEquals("la", getHeader(pre)); AssetItem rule_ = getRepo().loadAssetByUUID( rule.getUUID() ); assertEquals(rule.getVersionNumber(), rule_.getVersionNumber()); item = getRepo().loadModule( "testPackageCheckinConfig"); long v = item.getVersionNumber(); item.updateCheckinComment( "x" ); getRepo().save(); assertEquals(v, item.getVersionNumber()); }
@Test @Ignore("JackRabbit errors about node type for property {}testing. Probably repository changes have broken test.") public void testAddPackageProperties() throws Exception { RulesRepository repo = getRepo(); ModuleItem item = repo.createModule( "testListPackages1", "lalalala" ); assertNotNull(item.getCreator()); String[] testProp = new String[]{"Test1","Test2"}; item.node.checkout(); item.node.setProperty("testing", testProp); //item.node.setProperty("testing", "blah"); String[] newProp = item.getStringPropertyArray( "testing" ); assertTrue((testProp[0]).equals(newProp[0])); assertTrue(("Test2").equals(newProp[1])); //assertEquals(testProp[0], ); assertFalse(item.getCreator().equals( "" )); List list = iteratorToList( repo.listModules() ); int prevSize = list.size(); repo.createModule( "testListPackages2", "abc" ); list = iteratorToList( repo.listModules() ); assertEquals(prevSize + 1, list.size()); }
@Test public void testListArchivedAssets() throws Exception { ModuleItem pkg = getRepo().createModule( "org.drools.archivedtest", "" ); getRepo().save(); AssetItem item = pkg.addAsset( "archivedItem1", "" ); item.archiveItem( true ); item.checkin( "la" ); item = pkg.addAsset( "archivedItem2", "wee" ); item.archiveItem( true ); item.checkin( "la" ); item = pkg.addAsset( "archivedItem3", "wee" ); item.archiveItem( true ); item.checkin( "la" ); item = pkg.addAsset( "NOTarchivedItem", "wee" ); item.checkin( "la" ); Thread.sleep( 150 ); AssetItemIterator it = pkg.listArchivedAssets(); List list = iteratorToList( it ); assertEquals(3, list.size()); assertTrue(list.get( 0 ) instanceof AssetItem); assertTrue(list.get( 1 ) instanceof AssetItem); assertTrue(list.get( 2 ) instanceof AssetItem); it = pkg.queryAssets( "", true ); list = iteratorToList( it ); assertEquals(4, list.size()); }
@Test public void testListPackages() throws Exception { RulesRepository repo = getRepo(); ModuleItem item = repo.createModule( "testListPackages1", "lalalala" ); assertNotNull(item.getCreator()); item.updateStringProperty( "goo", "whee" ); assertEquals("goo", item.getStringProperty( "whee" )); assertFalse(item.getCreator().equals( "" )); List list = iteratorToList( repo.listModules() ); int prevSize = list.size(); repo.createModule( "testListPackages2", "abc" ); list = iteratorToList( repo.listModules() ); assertEquals(prevSize + 1, list.size()); }
@Test public void testPackageWorkspaceProperty() throws Exception { RulesRepository repo = getRepo(); ModuleItem item = repo.createModule( "testPackageWorkspaceProperty1", "lalalala" ); getRepo().save(); String[] workspaces = repo.loadModule(item.getName()).getWorkspaces(); item.removeWorkspace("workspace1"); workspaces = item.getWorkspaces(); assertEquals(workspaces.length, 0); item.addWorkspace("workspace1"); item.addWorkspace("workspace2"); item.addWorkspace("workspace1"); item.addWorkspace("workspace2"); workspaces = item.getWorkspaces(); assertEquals(workspaces.length, 2); item.removeWorkspace("workspace1"); item.removeWorkspace("workspace3"); workspaces = item.getWorkspaces(); assertEquals(workspaces.length, 1); assertTrue((workspaces[0]).equals("workspace2")); }
@Test public void testPackageRemove() throws Exception { RulesRepository repo = getRepo(); ModuleItem p = repo.createModule("removeMe", ""); AssetItem a = p.addAsset("Whee", ""); a.updateContent("yeah"); a.checkin("la"); p.addAsset("Waa", ""); repo.save(); ModuleItem pkgNested = p.createSubModule("NestedGoodness"); assertNotNull(pkgNested); int n = iteratorToList(repo.listModules()).size(); p = repo.loadModule("removeMe"); p.remove(); repo.save(); int n_ = iteratorToList(repo.listModules()).size(); assertEquals(n - 1, n_); }
@Test public void testAddRuleItemFromGlobalArea() { AssetItem ruleItem1 = loadGlobalArea().addAsset("testAddRuleItemFromGlobalAreaRuleItem", "test description"); ruleItem1.updateContent( "test content" ); ruleItem1.checkin( "updated the rule content" ); ModuleItem rulePackageItem2 = getRepo().createModule("testAddRuleItemFromGlobalArea1","desc"); AssetItem linkedRuleItem1 = rulePackageItem2.addAssetImportedFromGlobalArea(ruleItem1.getName()); linkedRuleItem1.updateContent( "test content for linked" ); linkedRuleItem1.checkin( "updated the rule content for linked" ); //test that it is following the head revision ruleItem1.updateContent("new lhs"); ruleItem1.checkin( "updated again" ); Iterator rulesIt2 = rulePackageItem2.getAssets(); List rules2 = iteratorToList(rulesIt2); assertEquals(1, rules2.size()); AssetItem ai = (AssetItem) rules2.get(0); assertTrue(ai.getName().equals("testAddRuleItemFromGlobalAreaRuleItem")); assertEquals("new lhs", ai.getContent()); assertEquals("test description", ai.getDescription()); assertEquals("updated again", ai.getCheckinComment()); }
@Test public void testGetFormatAndUpToDate() { ModuleItem rulePackageItem1 = getRepo().createModule("testGetFormat", "woot"); assertNotNull(rulePackageItem1); assertEquals(ModuleItem.MODULE_FORMAT, rulePackageItem1.getFormat()); assertFalse(rulePackageItem1.isBinaryUpToDate()); rulePackageItem1.updateBinaryUpToDate(true); assertTrue(rulePackageItem1.isBinaryUpToDate()); rulePackageItem1.updateBinaryUpToDate(false); assertFalse(rulePackageItem1.isBinaryUpToDate()); }