public boolean accept(Object artifact, String action) { if ( !(artifact instanceof AssetItem) ) return false; if ( ((AssetItem) artifact).getName().equalsIgnoreCase( "testCat1" ) ) { return true; } else { return false; } } } );
public boolean accept(Object artifact, String action) { if ( !(artifact instanceof AssetItem) ) return false; if ( ((AssetItem) artifact).getName().equalsIgnoreCase( "testCat1" ) ) { return true; } else { return false; } } } );
@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()); }
@Test public void testGetDateEffectiveForShareableAsset() { AssetItem asset = getRepo().loadGlobalArea().addAsset("testGetDateEffectiveForShareableAsset", "desc"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); // it should be initialized to null assertTrue(linkedAsset.getDateEffective() == null); // now try setting it, then retrieving it Calendar cal = Calendar.getInstance(); linkedAsset.updateDateEffective(cal); Calendar cal2 = linkedAsset.getDateEffective(); //Comparing two Calendar instances entirely doesn't work as JackRabbit persists Calendar objects as Strings using //http://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/util/ISO8601.java //Not all Calendar properties are taken into consideration so we only check the getTime() values. assertEquals( cal.getTimeInMillis(), cal2.getTimeInMillis() ); }
@Test public void testGetDateExpiredForShareableAsset() { AssetItem asset = getRepo().loadGlobalArea().addAsset("testGetDateExpiredForShareableAsset", "desc"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); // it should be initialized to null assertTrue(linkedAsset.getDateExpired() == null); // now try setting it, then retrieving it Calendar cal = Calendar.getInstance(); linkedAsset.updateDateExpired(cal); Calendar cal2 = linkedAsset.getDateExpired(); //Comparing two Calendar instances entirely doesn't work as JackRabbit persists Calendar objects as Strings using //http://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/util/ISO8601.java //Not all Calendar properties are taken into consideration so we only check the getTime() values. assertEquals( cal.getTimeInMillis(), cal2.getTimeInMillis() ); }
@Test public void testUpdateCategoriesForShareableAsset() { getRepo().loadCategory("/").addCategory("testUpdateCategoriesForShareableAssetTag1", "la"); getRepo().loadCategory("/").addCategory("testUpdateCategoriesForShareableAssetTag2", "la"); AssetItem asset = getRepo().loadGlobalArea().addAsset("testUpdateCategoriesForShareableAsset", "desc"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); String[] cats = new String[] {"testUpdateCategoriesForShareableAssetTag1", "testUpdateCategoriesForShareableAssetTag2"}; linkedAsset.updateCategoryList(cats); linkedAsset.checkin("aaa"); asset = getRepo().loadGlobalArea().loadAsset("testUpdateCategoriesForShareableAsset"); assertEquals(2, asset.getCategories().size()); for (Iterator iter = asset.getCategories().iterator(); iter.hasNext();) { CategoryItem cat = (CategoryItem)iter.next(); assertTrue(cat.getName().startsWith("testUpdateCategoriesForShareableAssetTag")); } }
@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 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 testFindRulesByCategory() throws Exception { getRepo().loadCategory( "/" ).addCategory( "testFindRulesByCat", "yeah" ); AssetItem as1 = getDefaultPackage().addAsset( "testFindRulesByCategory1", "ya", "testFindRulesByCat", "drl" ); getDefaultPackage().addAsset( "testFindRulesByCategory2", "ya", "testFindRulesByCat", AssetItem.DEFAULT_CONTENT_FORMAT ).checkin( "version0" ); as1.checkin( "version0" ); assertEquals("drl", as1.getFormat()); List rules = getRepo().findAssetsByCategory( "testFindRulesByCat", 0, -1 ).assets; assertEquals(2, rules.size()); for ( Iterator iter = rules.iterator(); iter.hasNext(); ) { AssetItem element = (AssetItem) iter.next(); assertTrue(element.getName().startsWith( "testFindRulesByCategory" )); } try { getRepo().loadCategory( "testFindRulesByCat" ).remove(); fail("should not be able to remove"); } catch (RulesRepositoryException e) { //assertTrue(e.getCause() instanceof ReferentialIntegrityException); assertNotNull(e.getMessage()); } }
@Test public void testGetRules() { ModuleItem rulePackageItem1 = getRepo().createModule("testGetRules", "desc"); assertFalse(rulePackageItem1.containsAsset("goober")); AssetItem ruleItem1 = rulePackageItem1.addAsset("testGetRules", "desc" ); ruleItem1.updateContent( "test lhs content" ); assertTrue(rulePackageItem1.containsAsset( "testGetRules" )); assertFalse(rulePackageItem1.containsAsset( "XXXXYYYYZZZZ" )); List rules = iteratorToList(rulePackageItem1.getAssets()); assertNotNull(rules); assertEquals(1, rules.size()); assertEquals("testGetRules", ((AssetItem)rules.get(0)).getName()); AssetItem ruleItem2 = rulePackageItem1.addAsset("testGetRules2", "desc" ); ruleItem2.updateContent( "test lhs content" ); rules = iteratorToList(rulePackageItem1.getAssets()); assertNotNull(rules); assertEquals(2, rules.size()); //now lets test loading rule AssetItem loaded = rulePackageItem1.loadAsset( "testGetRules" ); assertNotNull(loaded); assertEquals("testGetRules", loaded.getName()); assertEquals("desc", loaded.getDescription()); }
@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 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 testRemoveShareableAsset() throws Exception { AssetItem asset = loadGlobalArea().addAsset("testRemoveShareableAssetAsset", "desc"); asset.updateContent("la"); asset.checkin("initial"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); linkedAsset.updateContent("laa"); linkedAsset.checkin("second"); // REVISIT: the shared asset can not be removed unless no asset refers to it. // asset.remove(); linkedAsset.remove(); try { AssetItem linkedAsset1 = getDefaultPackage().loadAsset("testRemoveShareableAssetAsset"); fail("Did not get expected exception"); } catch (RulesRepositoryException e) { } AssetItem asset1 = loadGlobalArea().loadAsset("testRemoveShareableAssetAsset"); assertTrue(asset.getUUID().equals(asset1.getUUID())); }
@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 testStatusStufftestRemoveTagForShareableAsset() { getRepo().createState("testStatusStufftestRemoveTagForShareableAssetStatus"); AssetItem asset = getRepo().loadGlobalArea().addAsset("testStatusStufftestRemoveTagForShareableAsset", "desc"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); StateItem stateItem1 = linkedAsset.getState(); assertEquals(StateItem.DRAFT_STATE_NAME, stateItem1.getName()); assertEquals(getRepo().getState(StateItem.DRAFT_STATE_NAME), linkedAsset.getState()); assertEquals(StateItem.DRAFT_STATE_NAME, linkedAsset.getStateDescription()); linkedAsset.updateState("testStatusStufftestRemoveTagForShareableAssetStatus"); assertEquals("testStatusStufftestRemoveTagForShareableAssetStatus", linkedAsset.getState().getName()); }
@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 testDublinCorePropertiesForShareableAsset() { AssetItem asset = getRepo().loadGlobalArea().addAsset("testDublinCorePropertiesForShareableAsset", "desc"); asset.checkin("version0"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); linkedAsset.updateCoverage("b"); assertEquals("b", linkedAsset.getCoverage()); linkedAsset.checkin("woo"); linkedAsset = getDefaultPackage().loadAsset("testDublinCorePropertiesForShareableAsset"); assertEquals("b", linkedAsset.getCoverage()); assertEquals("", linkedAsset.getExternalRelation()); assertEquals("", linkedAsset.getExternalSource()); linkedAsset = getRepo().loadGlobalArea().loadAsset("testDublinCorePropertiesForShareableAsset"); assertEquals("b", linkedAsset.getCoverage()); assertEquals("", linkedAsset.getExternalRelation()); assertEquals("", linkedAsset.getExternalSource()); }
@Test public void testUpdateStringPropertyForShareableAsset() throws Exception { AssetItem asset = loadGlobalArea().addAsset("testUpdateStringPropertyForShareableAsset", "desc"); asset.checkin("initial"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); linkedAsset.updateContent("new content"); linkedAsset.checkin(""); linkedAsset.updateStringProperty("Anything", "AField"); assertEquals("Anything", linkedAsset.getStringProperty("AField")); assertEquals("Anything", asset.getStringProperty("AField")); asset.updateStringProperty("More", "AField", false); asset.updateContent("more content"); asset.checkin(""); asset = getRepo().loadAssetByUUID(asset.getUUID()); assertEquals("More", asset.getStringProperty("AField")); assertEquals("more content", asset.getContent()); linkedAsset = getRepo().loadAssetByUUID(linkedAsset.getUUID()); assertEquals("More", linkedAsset.getStringProperty("AField")); assertEquals("more content", asset.getContent()); } /*