package org.spotter.shared.configuration; import java.io.File; import java.io.IOException; import java.util.Properties; import junit.framework.Assert; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.lpe.common.config.GlobalConfiguration; import org.lpe.common.util.LpeFileUtils; public class ConfigCheckTest { private static File tempDir; private static String newFileName; private static String hierarchyFileName; private static String mEnvFileName; private static String wrongFileName; private static int maxUsers = 15; private static int rampUpInterval = 16; private static int rampUpUsers = 17; private static int coolDownInterval = 18; private static int coolDownUsers = 19; private static int duration = 20; @BeforeClass public static void initialize() throws IOException { GlobalConfiguration.initialize(new Properties()); createTempDir(); } private static void createTempDir() throws IOException { tempDir = new File("tempJUnit"); if (tempDir.exists()) { LpeFileUtils.removeDir(tempDir.getAbsolutePath()); } LpeFileUtils.createDir(tempDir.getAbsolutePath()); newFileName = tempDir.getAbsolutePath() + System.getProperty("file.separator") + "newFile.txt"; File newFile = new File(newFileName); newFile.createNewFile(); hierarchyFileName = tempDir.getAbsolutePath() + System.getProperty("file.separator") + "hierarchy.xml"; newFile = new File(hierarchyFileName); newFile.createNewFile(); mEnvFileName = tempDir.getAbsolutePath() + System.getProperty("file.separator") + "menv.xml"; newFile = new File(mEnvFileName); newFile.createNewFile(); wrongFileName = tempDir.getAbsolutePath() + System.getProperty("file.separator") + "wrong.xml"; } /** * Removes the temp dir. * * @throws IOException * removal of temp dir fails */ @AfterClass public static void cleanUp() throws IOException { LpeFileUtils.removeDir(tempDir.getAbsolutePath()); } @Before public void reinitializedGlobalConf() { GlobalConfiguration.reinitialize(new Properties()); } @Test public void testCorrectConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); Assert.assertEquals( GlobalConfiguration.getInstance().getProperty(ConfigKeys.RESULT_DIR), tempDir.getAbsolutePath() + System.getProperty("file.separator") + "testRun" + System.getProperty("file.separator")); Assert.assertFalse(GlobalConfiguration.getInstance().getPropertyAsBoolean(ConfigKeys.OMIT_EXPERIMENTS)); } @Test public void testCorrectConfig2() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); long timestamp = System.currentTimeMillis(); GlobalConfiguration.getInstance().putProperty(ConfigKeys.PPD_RUN_TIMESTAMP, String.valueOf(timestamp)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); Assert.assertTrue(GlobalConfiguration.getInstance().getProperty(ConfigKeys.RESULT_DIR) .contains(tempDir.getAbsolutePath())); Assert.assertFalse(GlobalConfiguration.getInstance().getProperty(ConfigKeys.RESULT_DIR) .equals(tempDir.getAbsolutePath())); Assert.assertFalse(GlobalConfiguration.getInstance().getPropertyAsBoolean(ConfigKeys.OMIT_EXPERIMENTS)); } @Test public void testCorrectConfigWithOmitExperimt() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); long timestamp = System.currentTimeMillis(); GlobalConfiguration.getInstance().putProperty(ConfigKeys.PPD_RUN_TIMESTAMP, String.valueOf(timestamp)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.OMIT_EXPERIMENTS, String.valueOf("true")); GlobalConfiguration.getInstance().putProperty(ConfigKeys.DUMMY_EXPERIMENT_DATA, tempDir.getAbsolutePath()); ConfigCheck.checkConfiguration(); Assert.assertTrue(GlobalConfiguration.getInstance().getProperty(ConfigKeys.RESULT_DIR) .contains(tempDir.getAbsolutePath())); Assert.assertFalse(GlobalConfiguration.getInstance().getProperty(ConfigKeys.RESULT_DIR) .equals(tempDir.getAbsolutePath())); Assert.assertTrue(GlobalConfiguration.getInstance().getPropertyAsBoolean(ConfigKeys.OMIT_EXPERIMENTS)); } @Test(expected = IllegalStateException.class) public void testNoResultDir() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testInvalidResultDir() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, newFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testNoHierarchyFile() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testWrongHierarchyFile() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, wrongFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testNoMeasEnvFile() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testWrongMeasEnvFile() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, wrongFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testNoMaxUsersConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testWrongMaxUsersConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, "A"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testNoRampUpIntervalConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testWrongRampUpIntervalConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, "A"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testNoRampUpUsersConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testWrongRampUpUsersConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, "A"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testNoCoolDownIntervalConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testWrongCoolDownIntervalConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, "A"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testNoCoolDownUsersConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testWrongCoolDownUsersConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, "A"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testNoDurationConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testWrongDurationConfig() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); GlobalConfiguration.getInstance().putProperty(ConfigKeys.SPOTTER_RUN_NAME, "testRun"); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, "A"); ConfigCheck.checkConfiguration(); } @Test(expected = IllegalStateException.class) public void testWrongOmitExperimt() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); long timestamp = System.currentTimeMillis(); GlobalConfiguration.getInstance().putProperty(ConfigKeys.PPD_RUN_TIMESTAMP, String.valueOf(timestamp)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.OMIT_EXPERIMENTS, String.valueOf("true")); ConfigCheck.checkConfiguration(); Assert.assertTrue(GlobalConfiguration.getInstance().getProperty(ConfigKeys.RESULT_DIR) .contains(tempDir.getAbsolutePath())); Assert.assertFalse(GlobalConfiguration.getInstance().getProperty(ConfigKeys.RESULT_DIR) .equals(tempDir.getAbsolutePath())); Assert.assertTrue(GlobalConfiguration.getInstance().getPropertyAsBoolean(ConfigKeys.OMIT_EXPERIMENTS)); } @Test(expected = IllegalStateException.class) public void testWrongOmitExperimt2() { GlobalConfiguration.getInstance().putProperty(ConfigKeys.RESULT_DIR, tempDir.getAbsolutePath()); long timestamp = System.currentTimeMillis(); GlobalConfiguration.getInstance().putProperty(ConfigKeys.PPD_RUN_TIMESTAMP, String.valueOf(timestamp)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.CONF_PROBLEM_HIERARCHY_FILE, hierarchyFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.MEASUREMENT_ENVIRONMENT_FILE, mEnvFileName); GlobalConfiguration.getInstance().putProperty(ConfigKeys.WORKLOAD_MAXUSERS, String.valueOf(maxUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_INTERVAL_LENGTH, String.valueOf(rampUpInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_RAMP_UP_NUM_USERS_PER_INTERVAL, String.valueOf(rampUpUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_INTERVAL_LENGTH, String.valueOf(coolDownInterval)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_COOL_DOWN_NUM_USERS_PER_INTERVAL, String.valueOf(coolDownUsers)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.EXPERIMENT_DURATION, String.valueOf(duration)); GlobalConfiguration.getInstance().putProperty(ConfigKeys.OMIT_EXPERIMENTS, String.valueOf("true")); GlobalConfiguration.getInstance().putProperty(ConfigKeys.DUMMY_EXPERIMENT_DATA, newFileName); ConfigCheck.checkConfiguration(); Assert.assertTrue(GlobalConfiguration.getInstance().getProperty(ConfigKeys.RESULT_DIR) .contains(tempDir.getAbsolutePath())); Assert.assertFalse(GlobalConfiguration.getInstance().getProperty(ConfigKeys.RESULT_DIR) .equals(tempDir.getAbsolutePath())); Assert.assertTrue(GlobalConfiguration.getInstance().getPropertyAsBoolean(ConfigKeys.OMIT_EXPERIMENTS)); } }