protected ModuleItem getDefaultPackage() { return getRepo().loadDefaultModule(); }
@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 testGetPackageItem() throws Exception { RulesRepository repo = getRepo(); ModuleItem def = repo.loadDefaultModule(); AssetItem asset = repo.loadDefaultModule().addAsset("testPackageItem", "test content"); ModuleItem pkg = asset.getModule(); assertEquals(def.getName(), pkg.getName()); assertEquals(def.getUUID(), pkg.getUUID()); }
@Test public void testGetTitle() { AssetItem ruleItem1 = getRepo().loadDefaultModule().addAsset("testGetTitle", "test content"); assertEquals("testGetTitle", ruleItem1.getTitle()); }
@Test public void testUpdateCategories() { getRepo().loadCategory( "/" ).addCategory( "testUpdateCategoriesOnAsset", "la" ); getRepo().loadCategory( "/" ).addCategory( "testUpdateCategoriesOnAsset2", "la" ); AssetItem item = getRepo().loadDefaultModule().addAsset( "testUpdateCategoriesOnAsset", "huhuhu" ); String[] cats = new String[] {"testUpdateCategoriesOnAsset", "testUpdateCategoriesOnAsset2"}; item.updateCategoryList( cats ); item.checkin( "aaa" ); item = getRepo().loadDefaultModule().loadAsset( "testUpdateCategoriesOnAsset" ); assertEquals(2, item.getCategories().size()); for ( Iterator iter = item.getCategories().iterator(); iter.hasNext(); ) { CategoryItem cat = (CategoryItem) iter.next(); assertTrue(cat.getName().startsWith( "testUpdateCategoriesOnAsset" )); } }
@Test public void testUpdateStringProperty() throws Exception { RulesRepository repo = getRepo(); ModuleItem def = repo.loadDefaultModule(); AssetItem asset = repo.loadDefaultModule().addAsset("testUpdateStringProperty", "test content"); asset.updateContent("new content"); asset.checkin(""); Calendar lm = asset.getLastModified(); Thread.sleep(100); asset.updateStringProperty("Anything", "AField"); assertEquals("Anything", asset.getStringProperty("AField")); Calendar lm_ = asset.getLastModified(); assertTrue(lm_.getTimeInMillis() > lm.getTimeInMillis()); Thread.sleep(100); asset.updateStringProperty("More", "AField", false); assertEquals(lm_.getTimeInMillis(), asset.getLastModified().getTimeInMillis()); asset.updateContent("more content"); asset.checkin(""); asset = repo.loadAssetByUUID(asset.getUUID()); assertEquals("More", asset.getStringProperty("AField")); }
@Test public void testRemoveCategoryUneeded() { RulesRepository repo = getRepo(); repo.loadCategory("/").addCategory("testRemoveCat", "a"); AssetItem as = repo.loadDefaultModule().addAsset("testRemoveCategory", "a", "testRemoveCat", "drl"); as.checkin("a"); as.updateCategoryList(new String[] {}); as.checkin("a"); as = repo.loadDefaultModule().loadAsset("testRemoveCategory"); assertEquals(0, as.getCategories().size()); repo.loadCategory("testRemoveCat").remove(); repo.save(); }
@Test public void testGetContentLength() throws Exception { RulesRepository repo = getRepo(); ModuleItem pkg = repo.loadDefaultModule(); AssetItem asset = pkg.addAsset("testGetContentLength", ""); assertEquals(0, asset.getContentLength()); asset.updateContent("boo"); asset.checkin(""); assertEquals("boo".getBytes().length, asset.getContentLength() ); asset = pkg.addAsset("testGetContentLength2", ""); assertEquals(0, asset.getContentLength()); asset.updateBinaryContentAttachment(new ByteArrayInputStream("foobar".getBytes())); asset.checkin(""); assertEquals("foobar".getBytes().length, asset.getContentLength()); }
@Test public void testAnonymousProperties() { AssetItem item = getRepo().loadDefaultModule().addAsset( "anonymousproperty", "lalalalala" ); item.updateUserProperty( "fooBar", "value"); assertEquals("value", item.getUserProperty("fooBar")); item.checkin( "lalalala" ); try { item.updateUserProperty( "drools:content", "whee" ); fail("should not be able to set built in properties this way."); } catch (IllegalArgumentException e) { assertNotNull(e.getMessage()); } }
@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 testGetFormat() throws Exception { AssetItem ruleItem1 = getRepo().loadDefaultModule().addAsset("testGetFormat", "test content"); ruleItem1.updateContent( "la" ); assertEquals(AssetItem.DEFAULT_CONTENT_FORMAT, ruleItem1.getFormat()); assertTrue(ruleItem1.getNode().hasProperty( AssetItem.CONTENT_PROPERTY_NAME )); assertFalse(ruleItem1.getNode().hasProperty( AssetItem.CONTENT_PROPERTY_BINARY_NAME )); ruleItem1.updateFormat( "blah" ); assertEquals("blah", ruleItem1.getFormat()); }
@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 testHistoryIterator() throws Exception { AssetItem ruleItem1 = getRepo().loadDefaultModule().addAsset("testHistoryIterator", "test description"); ruleItem1.checkin( "version0" ); ruleItem1 = getRepo().loadAssetByUUID( ruleItem1.getUUID() ); ruleItem1.updateContent( "wo" ); ruleItem1.checkin( "version1" ); ruleItem1 = getRepo().loadAssetByUUID( ruleItem1.getUUID() ); ruleItem1.updateContent( "ya" ); ruleItem1.checkin( "version2" ); Iterator it = ruleItem1.getHistory(); for ( int i = 0; i < 2; i++ ) { assertTrue(it.hasNext()); it.next(); } }
@Test public void testGetAssetItemWithSpecifiedVersion() throws Exception { AssetItem ruleItem1 = getRepo().loadDefaultModule().addAsset("testGetAssetItemWithSpecifiedVersion", "test description"); ruleItem1.checkin( "version0" ); ruleItem1 = getRepo().loadAssetByUUID( ruleItem1.getUUID() ); ruleItem1.updateContent( "wo" ); ruleItem1.checkin( "version1" ); ruleItem1 = getRepo().loadAssetByUUID( ruleItem1.getUUID() ); ruleItem1.updateContent( "ya" ); ruleItem1.checkin( "version2" ); AssetItem assetItemVersion1 = getRepo().loadDefaultModule().loadAsset("testGetAssetItemWithSpecifiedVersion", 1); assertEquals("", assetItemVersion1.getContent()); assertEquals(1, assetItemVersion1.getVersionNumber()); AssetItem assetItemVersion2 = getRepo().loadDefaultModule().loadAsset("testGetAssetItemWithSpecifiedVersion", 2); assertEquals("wo", assetItemVersion2.getContent()); assertEquals(2, assetItemVersion2.getVersionNumber()); AssetItem assetItemVersion3 = getRepo().loadDefaultModule().loadAsset("testGetAssetItemWithSpecifiedVersion", 3); assertEquals("ya", assetItemVersion3.getContent()); assertEquals(3, assetItemVersion3.getVersionNumber()); }
@Test public void testCheckinListener() throws Exception { StorageEventManager.le = null; StorageEventManager.se = null; final AssetItem[] x = new AssetItem[1]; CheckinEvent e = new CheckinEvent() { public void afterCheckin(AssetItem item) { x[0] = item; } }; StorageEventManager.registerCheckinEvent(e); RulesRepository repo = getRepo(); ModuleItem pkg = repo.loadDefaultModule(); AssetItem asset = pkg.addAsset("testCheckinListener", ""); assertEquals(0, asset.getContentLength()); asset.updateContent("boo"); asset.checkin(""); assertSame(asset, x[0]); }
@Test public void testRemoveCategoryLinkedWithArchived() { RulesRepository repo = getRepo(); repo.loadCategory("/").addCategory("testRemoveCategoryWithArchivedCat", "a"); AssetItem as = repo.loadDefaultModule().addAsset("testRemoveCategoryWithArchivedAsset", "a", "testRemoveCategoryWithArchivedCat", "drl"); as.checkin("a"); as.archiveItem(true); repo.loadCategory("testRemoveCategoryWithArchivedCat").remove(); repo.save(); as.remove(); } /**
@Test public void testGetContent() { AssetItem ruleItem1 = getRepo().loadDefaultModule().addAsset("testGetContent", "test content"); ruleItem1.updateContent( "test content" ); ruleItem1.updateFormat("drl"); assertNotNull(ruleItem1); assertNotNull(ruleItem1.getNode()); assertEquals("test content", ruleItem1.getContent()); assertFalse(ruleItem1.isBinary()); assertNotNull(ruleItem1.getBinaryContentAsBytes()); assertNotNull(ruleItem1.getBinaryContentAttachment()); String content = new String(ruleItem1.getBinaryContentAsBytes()); assertNotNull(content); }
@Test public void testAssetContentCallbacks() { StorageEventManager.le = null; StorageEventManager.se = null; RulesRepository repo = getRepo(); ModuleItem pkg = repo.loadDefaultModule(); AssetItem asset = pkg.addAsset("testAssetContentCallbacks", ""); assertEquals(0, asset.getContentLength()); asset.updateContent("boo"); asset.checkin(""); asset.updateContent("whee"); StorageEventManager.le = new MockLoadEvent(); StorageEventManager.se = new MockSaveEvent(); asset.checkin(""); assertTrue(((MockSaveEvent)StorageEventManager.se).checkinCalled); asset.getContent(); assertTrue(((MockLoadEvent) StorageEventManager.le).loadCalled); }
@Test public void testGetContentForShareableAsset() { AssetItem asset = getRepo().loadGlobalArea().addAsset("testGetContentForShareableAsset", "test content"); AssetItem linkedAsset = getRepo().loadDefaultModule().addAssetImportedFromGlobalArea(asset.getName()); linkedAsset.updateContent("test content"); linkedAsset.updateFormat("drl"); assertNotNull(linkedAsset.getNode()); assertEquals("test content", linkedAsset.getContent()); assertEquals("test content", asset.getContent()); assertFalse(linkedAsset.isBinary()); assertFalse(asset.isBinary()); assertNotNull(linkedAsset.getBinaryContentAsBytes()); assertNotNull(linkedAsset.getBinaryContentAttachment()); String content = new String(linkedAsset.getBinaryContentAsBytes()); assertNotNull(content); content = new String(asset.getBinaryContentAsBytes()); assertNotNull(content); }
@Test public void testGetSucceedingVersion() { AssetItem ruleItem1 = getRepo().loadDefaultModule().addAsset("testGetSucceedingVersion", "test description"); ruleItem1.checkin( "version0" ); assertEquals(1, ruleItem1.getVersionNumber()); AssetItem succeedingRuleItem = (AssetItem) ruleItem1.getSucceedingVersion(); assertTrue(succeedingRuleItem == null); ruleItem1.updateContent("new content"); ruleItem1.checkin( "la" ); assertEquals(2, ruleItem1.getVersionNumber()); AssetItem predecessorRuleItem = (AssetItem) ruleItem1.getPrecedingVersion(); assertEquals("", predecessorRuleItem.getContent()); succeedingRuleItem = (AssetItem) predecessorRuleItem.getSucceedingVersion(); assertNotNull(succeedingRuleItem); assertEquals(ruleItem1.getContent(), succeedingRuleItem.getContent()); }