@Test public void testUpdateDroolsHeaderAndExists() { ModuleItem packageItem = mock( ModuleItem.class ); AssetItem assetItem = mock( AssetItem.class ); when( packageItem.containsAsset( "drools" ) ).thenReturn( true ); when( packageItem.loadAsset( "drools" ) ).thenReturn( assetItem ); DroolsHeader.updateDroolsHeader( "expected", packageItem ); verify( assetItem ).updateContent( "expected" ); verify( assetItem ).checkin( "" ); }
private void migratePackage(ModuleItem pkg) { if (!pkg.containsAsset("drools")) { AssetItem asset = pkg.addAsset("drools", ""); asset.updateFormat("package"); asset.updateContent(pkg.getStringProperty(ModuleItem.HEADER_PROPERTY_NAME)); asset.checkin(""); } }
private void migratePackage(ModuleItem pkg) { if (!pkg.containsAsset("drools")) { AssetItem asset = pkg.addAsset("drools", ""); asset.updateFormat("package"); asset.updateContent(pkg.getStringProperty(ModuleItem.HEADER_PROPERTY_NAME)); asset.checkin(""); } }
@Test public void testUpdateDroolsHeaderAndDoesNotExist() { ModuleItem packageItem = mock( ModuleItem.class ); AssetItem assetItem = mock( AssetItem.class ); when( packageItem.containsAsset( "drools" ) ).thenReturn( false ); when( packageItem.addAsset( "drools", "" ) ).thenReturn( assetItem ); DroolsHeader.updateDroolsHeader( "expected", packageItem ); verify( packageItem ).addAsset( "drools", "" ); verify( assetItem ).updateFormat( "package" ); verify( assetItem ).updateContent( "expected" ); verify( assetItem ).checkin( "" ); }
@Test public void testGetLastModifiedOnCheckin() throws Exception { AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetLastModified", "test content"); Calendar cal = Calendar.getInstance(); long before = cal.getTimeInMillis(); Thread.sleep( 100 ); ruleItem1.updateContent("new lhs"); ruleItem1.checkin( "woot" ); Calendar cal2 = ruleItem1.getLastModified(); long lastMod = cal2.getTimeInMillis(); cal = Calendar.getInstance(); long after = cal.getTimeInMillis(); assertTrue(before < lastMod); assertTrue(lastMod < after); }
/** * This will restore the historical version, save, and check it in as a new * version with the given comment. * * @param versionToRestore * @param headVersion * @param comment */ public void restoreHistoricalAsset(AssetItem versionToRestore, AssetItem headVersion, String comment) { headVersion.checkout(); if (versionToRestore.isBinary()) { headVersion.updateBinaryContentAttachment(versionToRestore.getBinaryContentAttachment()); } else { headVersion.updateContent(versionToRestore.getContent()); } headVersion.checkin(comment); }
/** * This will restore the historical version, save, and check it in as a new * version with the given comment. * * @param versionToRestore * @param headVersion * @param comment */ public void restoreHistoricalAsset(AssetItem versionToRestore, AssetItem headVersion, String comment) { headVersion.checkout(); if (versionToRestore.isBinary()) { headVersion.updateBinaryContentAttachment(versionToRestore.getBinaryContentAttachment()); } else { headVersion.updateContent(versionToRestore.getContent()); } headVersion.checkin(comment); }
public static void updateHeader(String h, ModuleItem pkg) { pkg.checkout(); AssetItem as = null; if (pkg.containsAsset("drools")) { as = pkg.loadAsset("drools"); } else { as = pkg.addAsset("drools", ""); } as.updateContent(h); //as.checkin(""); }
@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 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 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 testHistoryIteratorForShareableAsset() throws Exception { AssetItem asset = getRepo().loadGlobalArea().addAsset("testHistoryIteratorForShareableAsset", "desc"); asset.checkin("version0"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); linkedAsset = getRepo().loadAssetByUUID(linkedAsset.getUUID()); linkedAsset.updateContent("wo"); linkedAsset.checkin("version2"); asset = getRepo().loadAssetByUUID(asset.getUUID()); asset.updateContent("ya"); asset.checkin("version3"); Iterator it = asset.getHistory(); for (int i = 0; i < 3; i++) { assertTrue(it.hasNext()); it.next(); } }
@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 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 testGetFormatForShareableAsset() throws Exception { AssetItem asset = getRepo().loadGlobalArea().addAsset("testGetFormatForShareableAsset", "desc"); asset.checkin("version0"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); linkedAsset.updateContent("la"); assertEquals(AssetItem.DEFAULT_CONTENT_FORMAT, linkedAsset.getFormat()); assertTrue(linkedAsset.getNode().hasProperty(AssetItem.CONTENT_PROPERTY_NAME)); assertFalse(linkedAsset.getNode().hasProperty(AssetItem.CONTENT_PROPERTY_BINARY_NAME)); linkedAsset.updateFormat("blah"); assertEquals("blah", linkedAsset.getFormat()); }
@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 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 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 testGetSucceedingVersionForShareableAsset() { AssetItem asset = getRepo().loadGlobalArea().addAsset("testGetSucceedingVersionForShareableAsset", "desc"); asset.checkin("version0"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); // Making the assset sharable creates the version 2. assertEquals(2, asset.getVersionNumber()); linkedAsset.updateContent("new content1"); linkedAsset.checkin("la"); AssetItem succeedingRuleItem = (AssetItem)linkedAsset.getSucceedingVersion(); assertTrue(succeedingRuleItem == null); linkedAsset.updateContent("new content2"); linkedAsset.checkin("la"); assertEquals(4, linkedAsset.getVersionNumber()); AssetItem predecessorRuleItem = (AssetItem)linkedAsset.getPrecedingVersion(); assertEquals("new content1", predecessorRuleItem.getContent()); succeedingRuleItem = (AssetItem)predecessorRuleItem.getSucceedingVersion(); assertNotNull(succeedingRuleItem); assertEquals(linkedAsset.getContent(), succeedingRuleItem.getContent()); }
@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()); }