package org.cloudifysource.shell.installer; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.cloudifysource.dsl.internal.CloudifyConstants; import org.cloudifysource.dsl.internal.packaging.ZipUtils; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; /** * The class <code>ManagementRedeployerTest</code> contains tests for the class * <code>{@link ManagementRedeployer}</code>. * * @generatedBy CodePro at 3/12/13 4:11 PM * @author barakme * @version $Revision: 1.0 $ */ public class ManagementRedeployerTest { private File cloudifyHomeMockDir; private File persistenceMockDir; @Before public void setup() throws IOException { cloudifyHomeMockDir = File.createTempFile("ManagerRedeployTestHome", "tst"); FileUtils.deleteQuietly(cloudifyHomeMockDir); cloudifyHomeMockDir.mkdirs(); persistenceMockDir = File.createTempFile("ManagerRedeployTestDeploy", "tst"); FileUtils.deleteQuietly(persistenceMockDir); persistenceMockDir.mkdirs(); final File deployMockDir = new File(persistenceMockDir, "deploy"); deployMockDir.mkdirs(); File srcWarDir = new File("src/test/resources/sampleWar"); File srcWarDir2 = new File("src/test/resources/sampleWar2"); FileUtils.copyDirectory(srcWarDir, new File(deployMockDir, CloudifyConstants.MANAGEMENT_REST_SERVICE_NAME)); FileUtils.copyDirectory(srcWarDir, new File(deployMockDir, CloudifyConstants.MANAGEMENT_WEBUI_SERVICE_NAME)); final File mockRestFile = new File(cloudifyHomeMockDir + "/tools/rest/rest.war"); mockRestFile.mkdirs(); mockRestFile.delete(); final File mockWebuiFile = new File(cloudifyHomeMockDir + "/tools/gs-webui/gs-webui-9.5.0-SNAPSHOT.war"); mockWebuiFile.mkdirs(); mockWebuiFile.delete(); ZipUtils.zip(srcWarDir2, mockRestFile); ZipUtils.zip(srcWarDir2, mockWebuiFile); } @After public void cleanup() { if (cloudifyHomeMockDir != null) { FileUtils.deleteQuietly(cloudifyHomeMockDir); } if (persistenceMockDir != null) { FileUtils.deleteQuietly(persistenceMockDir); } } /** * Run the void run(String,String) method test. * * @throws Exception * * @generatedBy CodePro at 3/12/13 4:11 PM */ @Test public void testRun() throws Exception { final File restIndex2 = new File(persistenceMockDir + "/deploy/" + CloudifyConstants.MANAGEMENT_REST_SERVICE_NAME + "/index2.html"); final File webuiIndex2 = new File(persistenceMockDir + "/deploy/" + CloudifyConstants.MANAGEMENT_WEBUI_SERVICE_NAME + "/index2.html"); Assert.assertTrue(!restIndex2.exists()); Assert.assertTrue(!webuiIndex2.exists()); ManagementRedeployer fixture = new ManagementRedeployer(); fixture.run(this.persistenceMockDir.getAbsolutePath(), this.cloudifyHomeMockDir.getAbsolutePath()); Assert.assertTrue(restIndex2.exists()); Assert.assertTrue(webuiIndex2.exists()); Assert.assertTrue(fixture.isRestRedeployed()); Assert.assertTrue(fixture.isWebuiRedeployed()); } @Test public void testRunNoPersistence() throws Exception { ManagementRedeployer fixture = new ManagementRedeployer(); fixture.run(null, this.cloudifyHomeMockDir.getAbsolutePath()); Assert.assertTrue(!fixture.isRestRedeployed()); Assert.assertTrue(!fixture.isWebuiRedeployed()); } @Test public void testRunPersistenceDirectoryMissing() throws Exception { final File tempFile = File.createTempFile("tempfile", "temp"); tempFile.delete(); ManagementRedeployer fixture = new ManagementRedeployer(); fixture.run(tempFile.getAbsolutePath(), this.cloudifyHomeMockDir.getAbsolutePath()); Assert.assertTrue(!fixture.isRestRedeployed()); Assert.assertTrue(!fixture.isWebuiRedeployed()); } }