/** * returns the string contents of the asset node. If this is a binary asset, * this will return null (use getBinaryContent instead). */ public String getContent() throws RulesRepositoryException { return getContent( false ); }
@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); }
/** * returns the string contents of the asset node. If this is a binary asset, * this will return null (use getBinaryContent instead). */ public String getContent() throws RulesRepositoryException { return getContent( false ); }
private void setUpMockAssets(String assetFormat, String content) { when( unsavedAssetItem.getFormat() ).thenReturn( assetFormat ); when( unsavedAssetItem.getContent() ).thenReturn( content ); when( savedAssetItem.getFormat() ).thenReturn( assetFormat ); when( savedAssetItem.getContent() ).thenReturn( content ); }
private void setUpSavedAssetItem() { savedAssetItem = mock( AssetItem.class ); when( savedAssetItem.getModule() ).thenReturn( packageItem ); when( savedAssetItem.getContent() ).thenReturn( "" ); when( savedAssetItem.getUUID() ).thenReturn( "mock" ); }
private void setUpUnsavedAssetItem() { unsavedAssetItem = mock( AssetItem.class ); when( unsavedAssetItem.getModule() ).thenReturn( packageItem ); when( unsavedAssetItem.getContent() ).thenReturn( "" ); when( unsavedAssetItem.getUUID() ).thenReturn( "mock" ); }
@Test public void testGetDroolsHeaderAndExists() { ModuleItem packageItem = mock( ModuleItem.class ); AssetItem assetItem = mock( AssetItem.class ); when( packageItem.containsAsset( "drools" ) ).thenReturn( true ); when( packageItem.loadAsset( "drools" ) ).thenReturn( assetItem ); when( assetItem.getContent() ).thenReturn( "content" ); assertEquals( DroolsHeader.getDroolsHeader( packageItem ), "content" ); verify( packageItem ).loadAsset( "drools" ); verify( assetItem ).getContent(); }
@Test public void testGetDroolsHeaderAndDoesNotExist() { ModuleItem packageItem = mock( ModuleItem.class ); AssetItem assetItem = mock( AssetItem.class ); when( packageItem.containsAsset( "drools" ) ).thenReturn( false ); when( packageItem.loadAsset( "drools" ) ).thenReturn( assetItem ); assertEquals( DroolsHeader.getDroolsHeader( packageItem ), "" ); verify( packageItem, never() ).loadAsset( "drools" ); verify( assetItem, never() ).getContent(); }
public static String getHeader(ModuleItem pkg) { if (pkg.containsAsset("drools")) { return pkg.loadAsset("drools").getContent(); } else { return ""; } }
@Test public void testValidateSpringContext() throws Exception { InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream( "org/drools/guvnor/server/contenthandler/valid-spring-context.xml" ); StringWriter stringWriter = new StringWriter(); IOUtils.copy( resourceAsStream, stringWriter ); setUpMockAssets( AssetFormats.SPRING_CONTEXT, stringWriter.toString() ); setUpAssetItemIterators( AssetFormats.SPRING_CONTEXT ); SpringContextContentHandler contentHandler = spy( new SpringContextContentHandler() ); runValidate( contentHandler ); verify( contentHandler ).validateAsset( Matchers.<AssetItem> any() ); verify( unsavedAssetItem ).getContent(); verify( savedAssetItem, never() ).getContent(); }
/** * 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); }
@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 testShareableNodes() throws Exception { RulesRepository repo = getRepo(); AssetItem item = repo.loadDefaultModule().addAsset("testShareableNodeOriginal", "desc"); item.updateContent("la"); item.getNode().addMixin("mix:shareable"); ModuleItem source = repo.createModule("testShareableNodesPackage", "desc"); repo.save(); source.checkout(); Session session = repo.getSession(); Workspace workspace = session.getWorkspace(); String path = "/drools:repository/drools:package_area/testShareableNodesPackage/assets/testShareableNodeShared"; workspace.clone(workspace.getName(), item.getNode().getPath(), path, false); repo.save(); AssetItem originalItem = repo.loadDefaultModule().loadAsset("testShareableNodeOriginal"); AssetItem sharedItem = repo.loadModule("testShareableNodesPackage").loadAsset("testShareableNodeShared"); assertTrue( originalItem.getContent().equals("la")); assertTrue( sharedItem.getContent().equals("la")); originalItem.remove(); }
@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 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 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 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 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 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()); } /*