@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 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 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 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 testGetContentLengthForShareableAsset() throws Exception { AssetItem ruleItem = loadGlobalArea().addAsset("testGetContentLengthForShareableAsset", "desc"); ruleItem.checkin("initial"); AssetItem linkedRuleItem = getDefaultPackage().addAssetImportedFromGlobalArea(ruleItem.getName()); assertEquals(0, ruleItem.getContentLength()); assertEquals(0, linkedRuleItem.getContentLength()); ruleItem.updateContent("boo"); ruleItem.checkin(""); assertEquals("boo".getBytes().length, ruleItem.getContentLength()); assertEquals("boo".getBytes().length, linkedRuleItem.getContentLength()); linkedRuleItem.updateContent("booo"); linkedRuleItem.checkin(""); assertEquals("booo".getBytes().length, ruleItem.getContentLength()); assertEquals("booo".getBytes().length, linkedRuleItem.getContentLength()); ruleItem = loadGlobalArea().addAsset("testGetContentLengthForShareableAsset2", ""); ruleItem.checkin("initial"); linkedRuleItem = getDefaultPackage().addAssetImportedFromGlobalArea(ruleItem.getName()); assertEquals(0, ruleItem.getContentLength()); assertEquals(0, linkedRuleItem.getContentLength()); linkedRuleItem.updateBinaryContentAttachment(new ByteArrayInputStream("foobar".getBytes())); linkedRuleItem.checkin(""); assertEquals("foobar".getBytes().length, ruleItem.getContentLength()); assertEquals("foobar".getBytes().length, linkedRuleItem.getContentLength()); ruleItem.updateBinaryContentAttachment(new ByteArrayInputStream("foobarr".getBytes())); ruleItem.checkin(""); assertEquals("foobarr".getBytes().length, ruleItem.getContentLength()); assertEquals("foobarr".getBytes().length, linkedRuleItem.getContentLength()); }
@Test public void testGetPredecessorVersionsIteratorForShareableAsset() { AssetItem asset = getRepo().loadGlobalArea().addAsset("testGetPredecessorVersionsIteratorForShareableAsset", "desc"); asset.checkin("version0"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); linkedAsset.updateContent("test content"); linkedAsset.checkin("lalalalala"); Iterator iterator = linkedAsset.getPredecessorVersionsIterator(); assertNotNull(iterator); assertTrue(iterator.hasNext()); asset.updateContent("new content"); asset.checkin("boo"); iterator = linkedAsset.getPredecessorVersionsIterator(); assertNotNull(iterator); assertTrue(iterator.hasNext()); AssetItem nextRuleItem = (AssetItem)iterator.next(); assertEquals("test content", nextRuleItem.getContent()); asset.updateContent("newer content"); asset.checkin("wee"); iterator = linkedAsset.getPredecessorVersionsIterator(); assertNotNull(iterator); assertTrue(iterator.hasNext()); nextRuleItem = (AssetItem)iterator.next(); assertTrue(iterator.hasNext()); assertEquals("new content", nextRuleItem.getContent()); nextRuleItem = (AssetItem)iterator.next(); assertEquals("test content", nextRuleItem.getContent()); assertEquals("", ((AssetItem)iterator.next()).getContent()); }
@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 testCategoriesForShareableAsset() { getRepo().loadCategory("/").addCategory("testCategoriesTag", "description"); getRepo().loadCategory("/").addCategory("testCategoriesTag2", "description"); AssetItem asset = getRepo().loadGlobalArea().addAsset("testCategoriesForShareableAsset", "desc"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); linkedAsset.addCategory("testCategoriesTag"); List tags = linkedAsset.getCategories(); assertEquals(1, tags.size()); assertEquals("testCategoriesTag", ((CategoryItem)tags.get(0)).getName()); linkedAsset.addCategory("testCategoriesTag2"); tags = linkedAsset.getCategories(); assertEquals(2, tags.size()); linkedAsset.checkin("woot"); // now test retrieve by tags List result = getRepo().findAssetsByCategory("testCategoriesTag", 0, -1).assets; assertEquals(1, result.size()); AssetItem retItem = (AssetItem)result.get(0); assertEquals("testCategoriesForShareableAsset", retItem.getName()); asset.updateContent("foo"); asset.checkin("latest"); assertTrue(asset.getCategories().size() > 0); assertNotNull(asset.getCategorySummary()); assertEquals("testCategoriesTag testCategoriesTag2 ", asset.getCategorySummary()); result = getRepo().findAssetsByCategory("testCategoriesTag2", 0, -1).assets; assertEquals(1, result.size()); asset = (AssetItem)result.get(0); assertEquals(2, asset.getCategories().size()); }
@Test public void testBinaryAssetForShareableAsset() throws Exception { AssetItem asset = getRepo().loadGlobalArea().addAsset("testBinaryAssetForShareableAsset", "desc"); asset.checkin("version0"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); String data = "abc 123"; ByteArrayInputStream in = new ByteArrayInputStream(data.getBytes()); linkedAsset.updateBinaryContentAttachment(in); linkedAsset.updateBinaryContentAttachmentFileName("x.x"); in.close(); assertEquals(data, linkedAsset.getContent()); assertFalse(linkedAsset.getNode().hasProperty(AssetItem.CONTENT_PROPERTY_NAME)); assertTrue(linkedAsset.getNode().hasProperty(AssetItem.CONTENT_PROPERTY_BINARY_NAME)); linkedAsset.checkin("lalalala"); assertTrue(linkedAsset.isBinary()); asset = getRepo().loadGlobalArea().loadAsset("testBinaryAssetForShareableAsset"); InputStream in2 = asset.getBinaryContentAttachment(); assertNotNull(in2); byte[] data2 = asset.getBinaryContentAsBytes(); assertEquals(data, new String(data2)); assertEquals("x.x", asset.getBinaryContentAttachmentFileName()); assertTrue(asset.isBinary()); linkedAsset.updateContent("qed"); linkedAsset.checkin(""); linkedAsset = getRepo().loadAssetByUUID(linkedAsset.getUUID()); assertEquals("qed", linkedAsset.getContent()); }
@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 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()); }
assertFalse("yeah !".equals(prev.getCheckinComment())); asset = getDefaultPackage().loadAsset("testUpdateContentForShareableAsset"); VersionIterator it = asset.getNode().getVersionHistory().getAllVersions();
ruleItem.checkin("initial"); AssetItem linkedRuleItem = getDefaultPackage().addAssetImportedFromGlobalArea(ruleItem.getName()); linkedRuleItem.updateContent("laa"); linkedRuleItem.checkin("second");
getRepo().loadCategory("/").addCategory("testRemoveTagForShareableAssetTag3", "description"); AssetItem asset = getRepo().loadGlobalArea().addAsset("testRemoveTagForShareableAsset", "desc"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName());
@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 testSaveAndCheckinDescriptionAndTitleForShareableAsset() throws Exception { AssetItem asset = getRepo().loadGlobalArea().addAsset("testSaveAndCheckinDescriptionAndTitleForShareableAsset", "desc"); asset.checkin("version0"); AssetItem linkedAsset = getDefaultPackage().addAssetImportedFromGlobalArea(asset.getName()); // it should be "" to begin with assertEquals("desc", linkedAsset.getDescription()); linkedAsset.updateDescription("test description"); assertEquals("test description", linkedAsset.getDescription()); assertTrue(getRepo().getSession().hasPendingChanges()); linkedAsset.updateTitle("This is a title"); assertTrue(getRepo().getSession().hasPendingChanges()); linkedAsset.checkin("ya"); // we can save without a checkin getRepo().getSession().save(); assertFalse(getRepo().getSession().hasPendingChanges()); try { linkedAsset.getPrecedingVersion().updateTitle("baaad"); fail("should not be able to do this"); } catch (RulesRepositoryException e) { assertNotNull(e.getMessage()); } }
@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 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()); } /*