package at.ac.tuwien.iter.loadgenerators;
import javax.validation.ValidationException;
import org.apache.commons.cli.ParseException;
import org.apache.tapestry5.ioc.IOCUtilities;
import org.apache.tapestry5.ioc.Registry;
import org.apache.tapestry5.ioc.RegistryBuilder;
import org.apache.tapestry5.ioc.services.SymbolSource;
import org.apache.tapestry5.ioc.services.TypeCoercer;
import org.gambi.tapestry5.cli.services.CLIParser;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.LoggerFactory;
import at.ac.tuwien.iter.modules.IterModule;
import at.ac.tuwien.iter.services.LoadGenerator;
import at.ac.tuwien.iter.services.LoadGeneratorSource;
import at.ac.tuwien.iter.services.impl.loadgenerators.InputSampler;
import at.ac.tuwien.iter.utils.IterSymbolsNames;
public class LoadGeneratorTest {
private static Registry registry;
private LoadGenerator generator;
@BeforeClass
public static void setup() {
System.getProperties().put("at.ac.tuwien.dsg.cloud.configuration",
"./conf/cloud.properties");
RegistryBuilder builder = new RegistryBuilder();
IOCUtilities.addDefaultModules(builder);
builder.add(IterModule.class);
registry = builder.build();
registry.performRegistryStartup();
}
@Test
public void generateTestCase() throws ValidationException, ParseException {
String manifestURL = "http://www.inf.usi.ch/phd/gambi/attachments/autocles/doodle-manifest.xml";
String jmxURL = "http://www.inf.usi.ch/phd/gambi/attachments/autocles/doodle-clients.jmx";
String[] args = { "-c", "ite", "-s", "ite", "-m", manifestURL, "-j",
jmxURL };
registry.getService(CLIParser.class).parse(args);
LoadGeneratorSource generatorSource = registry
.getService(LoadGeneratorSource.class);
LoadGenerator generator = generatorSource.getLoadGenerator("sine-lhs");
at.ac.tuwien.iter.data.Test test = generator.generateRandomCase();
System.out.println("LoadGeneratorTest.generateTestCase() test "
+ test.getTraceURL());
}
@Test
public void generateSinusTestCase() {
generator = new SinusLoadGenerator(
LoggerFactory.getLogger(LoadGenerator.class),
"SinusLoadGenerator",
registry.getService(TypeCoercer.class),
registry.getService(SymbolSource.class).valueForSymbol(
IterSymbolsNames.TRACEGENERATOR_URL),
"http://www.inf.usi.ch/phd/gambi/attachments/autocles/doodle-clients.jmx",
"", 1.0, 30.0, 0.0, 0.001, //
100, // nBins
registry.getService("RandomSinusLoadGenerator",
InputSampler.class), 300);
generator.generateRandomCase();
}
@AfterClass
public static void stopAll() {
registry.shutdown();
}
}