Author: sebb
Date: Mon Dec 3 11:39:09 2007
New Revision: 600642
URL: http://svn.apache.org/viewvc?rev=600642&view=rev
Log:
Add a function test
Modified:
jakarta/jmeter/trunk/test/src/org/apache/jmeter/control/TestSwitchController.java
Modified:
jakarta/jmeter/trunk/test/src/org/apache/jmeter/control/TestSwitchController.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/test/src/org/apache/jmeter/control/TestSwitchController.java?rev=600642&r1=600641&r2=600642&view=diff
==============================================================================
---
jakarta/jmeter/trunk/test/src/org/apache/jmeter/control/TestSwitchController.java
(original)
+++
jakarta/jmeter/trunk/test/src/org/apache/jmeter/control/TestSwitchController.java
Mon Dec 3 11:39:09 2007
@@ -18,10 +18,20 @@
package org.apache.jmeter.control;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.jmeter.engine.util.CompoundVariable;
+import org.apache.jmeter.engine.util.ReplaceStringWithFunctions;
import org.apache.jmeter.junit.JMeterTestCase;
import org.apache.jmeter.junit.stubs.TestSampler;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.testelement.TestElement;
+import org.apache.jmeter.testelement.property.JMeterProperty;
+import org.apache.jmeter.testelement.property.StringProperty;
+import org.apache.jmeter.threads.JMeterContext;
+import org.apache.jmeter.threads.JMeterContextService;
+import org.apache.jmeter.threads.JMeterVariables;
public class TestSwitchController extends JMeterTestCase {
static {
@@ -216,5 +226,55 @@
assertEquals("Loop:" + i, "after",
nextName(controller));
}
assertNull("Loops:" + loops, nextName(controller));
+ }
+
+ /*
+ * N.B. Requires ApacheJMeter_functions.jar to be on the
classpath,
+ * otherwise the function cannot be resolved.
+ */
+ public void testFunction() throws Exception {
+ JMeterContext jmctx = JMeterContextService.getContext();
+ Map variables = new HashMap();
+ ReplaceStringWithFunctions transformer = new
ReplaceStringWithFunctions(new CompoundVariable(), variables);
+ jmctx.setVariables(new JMeterVariables());
+ JMeterVariables jmvars = jmctx.getVariables();
+ jmvars.put("VAR", "100");
+ StringProperty prop = new
StringProperty(SwitchController.SWITCH_VALUE,"${__counter(TRUE,VAR)}");
+ JMeterProperty newProp =
transformer.transformValue(prop);
+ newProp.setRunningVersion(true);
+
+ GenericController controller = new GenericController();
+
+ SwitchController switch_cont = new SwitchController();
+ switch_cont.setProperty(newProp);
+
+ controller.addTestElement(new TestSampler("before"));
+ controller.addTestElement(switch_cont);
+
+ switch_cont.addTestElement(new TestSampler("0"));
+ switch_cont.addTestElement(new TestSampler("1"));
+ switch_cont.addTestElement(new TestSampler("2"));
+ switch_cont.addTestElement(new TestSampler("3"));
+
+ controller.addTestElement(new TestSampler("after"));
+
+ controller.initialize();
+
+ assertEquals("100",jmvars.get("VAR"));
+
+ for (int i = 1; i <= 3; i++) {
+ assertEquals("Loop " + i, "before",
nextName(controller));
+ assertEquals("Loop " + i, ""+i,
nextName(controller));
+ assertEquals("Loop " + i, ""+i,
jmvars.get("VAR"));
+ assertEquals("Loop " + i, "after",
nextName(controller));
+ assertNull(nextName(controller));
+ }
+ int i = 4;
+ assertEquals("Loop " + i, "before",
nextName(controller));
+ assertEquals("Loop " + i, "0", nextName(controller));
+ assertEquals("Loop " + i, ""+i, jmvars.get("VAR"));
+ assertEquals("Loop " + i, "after",
nextName(controller));
+ assertNull(nextName(controller));
+ assertEquals("4",jmvars.get("VAR"));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]