private void checkInAssetIfNecessary(boolean force) { if(!(this instanceof ModuleItem)) { return; } Iterator<AssetItem> assets = ((ModuleItem)this).getAssets(); while(assets.hasNext()) { AssetItem asset = assets.next(); if(force || !assetHasHistory(asset)) { asset.checkout(); asset.checkin("Package[" + this.getTitle() + "] checked in"); } } }
private void checkInAssetIfNecessary(boolean force) { if(!(this instanceof ModuleItem)) { return; } Iterator<AssetItem> assets = ((ModuleItem)this).getAssets(); while(assets.hasNext()) { AssetItem asset = assets.next(); if(force || !assetHasHistory(asset)) { asset.checkout(); asset.checkin("Package[" + this.getTitle() + "] checked in"); } } }
@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( "" ); }
public static void ensureMixinType(AssetItem assetItem, String mixin) throws RepositoryException { if (!assetItem.getNode().isNodeType(mixin)) { assetItem.checkout(); assetItem.getNode().addMixin(mixin); assetItem.checkin("add " + mixin); } }
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(""); } }
public static void ensureMixinType(AssetItem assetItem, String mixin) throws RepositoryException { if (!assetItem.getNode().isNodeType(mixin)) { assetItem.checkout(); assetItem.getNode().addMixin(mixin); assetItem.checkin("add " + mixin); } }
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); }
@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 testAnonymousPropertiesForShareableAsset() { AssetItem asset = getRepo().loadGlobalArea().addAsset("testAnonymousPropertiesForShareableAsset", "desc"); asset.checkin("version0"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); linkedAsset.updateUserProperty("fooBar", "value"); assertEquals("value", linkedAsset.getUserProperty("fooBar")); linkedAsset.checkin("lalalala"); try { linkedAsset.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 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 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 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 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 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 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()); }
@Test public void testDublinCoreProperties() { ModuleItem pkg = getRepo().createModule( "testDublinCore", "wa" ); AssetItem ruleItem = pkg.addAsset( "testDublinCoreProperties", "yeah yeah yeah" ); ruleItem.updateCoverage( "b" ); assertEquals("b",ruleItem.getCoverage()); ruleItem.checkin( "woo" ); pkg = getRepo().loadModule( "testDublinCore" ); ruleItem = (AssetItem) pkg.getAssets().next(); assertEquals("b", ruleItem.getCoverage()); assertEquals("", ruleItem.getExternalRelation()); assertEquals("", ruleItem.getExternalSource()); }
@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 testGetTitleForShareableAsset() { AssetItem asset = getRepo().loadGlobalArea().addAsset("testGetTitleForShareableAsset", "desc"); asset.checkin("version0"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); assertEquals("testGetTitleForShareableAsset", linkedAsset.getName()); assertEquals("testGetTitleForShareableAsset", asset.getName()); // NOTE: Linked AssetItem does not have its own Title property. assertEquals("testGetTitleForShareableAsset", linkedAsset.getTitle()); assertEquals("testGetTitleForShareableAsset", asset.getTitle()); }