package com.blazemeter.jmeter.threads.concurrency;
import com.blazemeter.jmeter.threads.arrivals.ArrivalsThreadGroupTest;
import kg.apc.emulators.TestJMeterUtils;
import org.apache.jmeter.sampler.DebugSampler;
import org.junit.BeforeClass;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import static org.junit.Assert.assertTrue;
public class ConcurrencyThreadGroupTest {
@BeforeClass
public static void setUpClass() throws Exception {
ArrivalsThreadGroupTest.setUpClass();
TestJMeterUtils.createJmeterEnv();
}
@Test
public void testFlow() throws IOException {
File f = File.createTempFile("arrivalsLog-", ".jtl");
f.deleteOnExit();
ConcurrencyThreadGroup ctg = new ConcurrencyThreadGroup();
ctg.addTestElement(new DebugSampler());
ctg.setName("TEST");
ctg.setLogFilename(f.getAbsolutePath());
ctg.setTargetLevel("10");
ctg.setRampUp("5");
ctg.setHold("5");
//ctg.setArrivalsLimit("20");
ctg.testStarted();
ctg.start(0, null, ArrivalsThreadGroupTest.getListedHashTree(ctg, false), null);
ctg.waitThreadsStopped();
ctg.testEnded();
ctg.tellThreadsToStop();
ctg.verifyThreadsStopped();
assertTrue("length less than expected: " + f.length(), f.length() > 800);
}
}