package kg.apc.jmeter.control;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.engine.util.ValueReplacer;
import org.apache.jmeter.functions.InvalidVariableException;
import org.apache.jmeter.testelement.property.JMeterProperty;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
public class ParameterizedControllerTest {
private ParameterizedController instance;
@Before
public void setUp() {
JMeterVariables vars = new JMeterVariables();
vars.put("var1", "val1");
JMeterContextService.getContext().setVariables(vars);
JMeterContextService.getContext().setSamplingStarted(true);
instance = new ParameterizedController();
instance.setRunningVersion(true);
}
@After
public void tearDown() {
JMeterContextService.getContext().setSamplingStarted(false);
}
@Test
public void testNext() throws InvalidVariableException {
System.out.println("next");
Arguments args = new Arguments();
args.addArgument("var2", "${var1}");
args.addArgument("var3", "${var2}");
instance.setUserDefinedVariables(args);
ValueReplacer replacer = new ValueReplacer();
replacer.replaceValues(instance);
args.setRunningVersion(true);
instance.next();
JMeterVariables vars = JMeterContextService.getContext().getVariables();
assertEquals("${var2}", vars.get("var3"));
assertEquals("val1", vars.get("var2"));
instance.next();
assertEquals("val1", vars.get("var3"));
}
@Test
public void testSetUserDefinedVariables() {
System.out.println("setUserDefinedVariables");
Arguments vars = new Arguments();
instance.setUserDefinedVariables(vars);
}
@Test
public void testGetUserDefinedVariablesAsProperty() {
System.out.println("getUserDefinedVariablesAsProperty");
Arguments vars = new Arguments();
vars.addArgument("key", "value");
instance.setUserDefinedVariables(vars);
JMeterProperty result = instance.getUserDefinedVariablesAsProperty();
assertNotNull(result);
}
}