sebb        2004/09/22 15:07:17

  Modified:    src/functions/org/apache/jmeter/functions Tag: rel-2_0
                        PackageTest.java
               xdocs/usermanual Tag: rel-2_0 functions.xml
  Added:       src/functions/org/apache/jmeter/functions Tag: rel-2_0
                        SplitFunction.java
  Log:
  Added __split() function to parse delimited strings
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.10.2.3  +81 -2     
jakarta-jmeter/src/functions/org/apache/jmeter/functions/PackageTest.java
  
  Index: PackageTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/functions/org/apache/jmeter/functions/PackageTest.java,v
  retrieving revision 1.10.2.2
  retrieving revision 1.10.2.3
  diff -u -r1.10.2.2 -r1.10.2.3
  --- PackageTest.java  18 Sep 2004 15:50:51 -0000      1.10.2.2
  +++ PackageTest.java  22 Sep 2004 22:07:17 -0000      1.10.2.3
  @@ -35,6 +35,9 @@
   
   import org.apache.jmeter.engine.util.CompoundVariable;
   import org.apache.jmeter.junit.JMeterTestCase;
  +import org.apache.jmeter.threads.JMeterContext;
  +import org.apache.jmeter.threads.JMeterContextService;
  +import org.apache.jmeter.threads.JMeterVariables;
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.jorphan.util.JMeterStopThreadException;
   import org.apache.log.Logger;
  @@ -83,6 +86,19 @@
                return sff;
        }
   
  +     // Create the StringFromFile function and set its parameters.
  +     private static SplitFunction SplitParams(String p1, String p2, String p3)
  +     throws Exception
  +     {
  +             SplitFunction split = new SplitFunction();
  +             Collection parms = new LinkedList();
  +             parms.add(new CompoundVariable(p1));
  +             if (p2 != null) parms.add(new CompoundVariable(p2));
  +             if (p3 != null) parms.add(new CompoundVariable(p3));
  +             split.setParameters(parms);
  +             return split;
  +     }
  +
        public static Test suite() throws Exception
        {
                   TestSuite allsuites = new TestSuite();
  @@ -112,7 +128,70 @@
                   sff.addTest(new PackageTest("SFFTest5"));
                   allsuites.addTest(sff);
                   
  +                TestSuite split = new TestSuite("SplitFunction");
  +                split.addTest(new PackageTest("SplitTest1"));
  +                allsuites.addTest(split);
  +                
                   return allsuites;
  +    }
  +    
  +    private JMeterContext jmctx = null;
  +     private JMeterVariables vars = null;
  +    public void setUp()
  +    {
  +     jmctx = JMeterContextService.getContext();
  +        jmctx.setVariables(new JMeterVariables());
  +     vars = jmctx.getVariables();
  +    }
  +
  +    public void SplitTest1() throws Exception
  +    {
  +     SplitFunction split=null;
  +     try
  +             {
  +                 split = SplitParams("a,b,c",null,null);
  +                 fail("Expected InvalidVariableException (wrong number of 
parameters)");
  +             }
  +     catch (InvalidVariableException e)
  +             {
  +             //OK
  +             }
  +         split = SplitParams("a,b,c","VAR1",null);
  +     split.execute();
  +     assertEquals("a,b,c",vars.get("VAR1"));
  +     assertEquals("3",vars.get("VAR1_n"));
  +     assertEquals("a",vars.get("VAR1_1"));
  +     assertEquals("b",vars.get("VAR1_2"));
  +     assertEquals("c",vars.get("VAR1_3"));
  +     assertNull(vars.get("VAR1_4"));
  +
  +     split = SplitParams("a,b,c","VAR2",",");
  +     split.execute();
  +     assertEquals("a,b,c",vars.get("VAR2"));
  +     assertEquals("3",vars.get("VAR2_n"));
  +     assertEquals("a",vars.get("VAR2_1"));
  +     assertEquals("b",vars.get("VAR2_2"));
  +     assertEquals("c",vars.get("VAR2_3"));
  +     assertNull(vars.get("VAR2_4"));
  +
  +     split = SplitParams("a|b|c","VAR3","|");
  +     split.execute();
  +     assertEquals("a|b|c",vars.get("VAR3"));
  +     assertEquals("3",vars.get("VAR3_n"));
  +     assertEquals("a",vars.get("VAR3_1"));
  +     assertEquals("b",vars.get("VAR3_2"));
  +     assertEquals("c",vars.get("VAR3_3"));
  +     assertNull(vars.get("VAR3_4"));
  +
  +     split = SplitParams("a|b||","VAR4","|");
  +     split.execute();
  +     assertEquals("a|b||",vars.get("VAR4"));
  +     assertEquals("3",vars.get("VAR4_n"));
  +     assertEquals("a",vars.get("VAR4_1"));
  +     assertEquals("b",vars.get("VAR4_2"));
  +     assertEquals("?",vars.get("VAR4_3"));
  +     assertNull(vars.get("VAR4_5"));
  +
       }
       
       public void SFFTest1() throws Exception
  
  
  
  No                   revision
  
  Index: PackageTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/functions/org/apache/jmeter/functions/PackageTest.java,v
  retrieving revision 1.10.2.2
  retrieving revision 1.10.2.3
  diff -u -r1.10.2.2 -r1.10.2.3
  --- PackageTest.java  18 Sep 2004 15:50:51 -0000      1.10.2.2
  +++ PackageTest.java  22 Sep 2004 22:07:17 -0000      1.10.2.3
  @@ -35,6 +35,9 @@
   
   import org.apache.jmeter.engine.util.CompoundVariable;
   import org.apache.jmeter.junit.JMeterTestCase;
  +import org.apache.jmeter.threads.JMeterContext;
  +import org.apache.jmeter.threads.JMeterContextService;
  +import org.apache.jmeter.threads.JMeterVariables;
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.jorphan.util.JMeterStopThreadException;
   import org.apache.log.Logger;
  @@ -83,6 +86,19 @@
                return sff;
        }
   
  +     // Create the StringFromFile function and set its parameters.
  +     private static SplitFunction SplitParams(String p1, String p2, String p3)
  +     throws Exception
  +     {
  +             SplitFunction split = new SplitFunction();
  +             Collection parms = new LinkedList();
  +             parms.add(new CompoundVariable(p1));
  +             if (p2 != null) parms.add(new CompoundVariable(p2));
  +             if (p3 != null) parms.add(new CompoundVariable(p3));
  +             split.setParameters(parms);
  +             return split;
  +     }
  +
        public static Test suite() throws Exception
        {
                   TestSuite allsuites = new TestSuite();
  @@ -112,7 +128,70 @@
                   sff.addTest(new PackageTest("SFFTest5"));
                   allsuites.addTest(sff);
                   
  +                TestSuite split = new TestSuite("SplitFunction");
  +                split.addTest(new PackageTest("SplitTest1"));
  +                allsuites.addTest(split);
  +                
                   return allsuites;
  +    }
  +    
  +    private JMeterContext jmctx = null;
  +     private JMeterVariables vars = null;
  +    public void setUp()
  +    {
  +     jmctx = JMeterContextService.getContext();
  +        jmctx.setVariables(new JMeterVariables());
  +     vars = jmctx.getVariables();
  +    }
  +
  +    public void SplitTest1() throws Exception
  +    {
  +     SplitFunction split=null;
  +     try
  +             {
  +                 split = SplitParams("a,b,c",null,null);
  +                 fail("Expected InvalidVariableException (wrong number of 
parameters)");
  +             }
  +     catch (InvalidVariableException e)
  +             {
  +             //OK
  +             }
  +         split = SplitParams("a,b,c","VAR1",null);
  +     split.execute();
  +     assertEquals("a,b,c",vars.get("VAR1"));
  +     assertEquals("3",vars.get("VAR1_n"));
  +     assertEquals("a",vars.get("VAR1_1"));
  +     assertEquals("b",vars.get("VAR1_2"));
  +     assertEquals("c",vars.get("VAR1_3"));
  +     assertNull(vars.get("VAR1_4"));
  +
  +     split = SplitParams("a,b,c","VAR2",",");
  +     split.execute();
  +     assertEquals("a,b,c",vars.get("VAR2"));
  +     assertEquals("3",vars.get("VAR2_n"));
  +     assertEquals("a",vars.get("VAR2_1"));
  +     assertEquals("b",vars.get("VAR2_2"));
  +     assertEquals("c",vars.get("VAR2_3"));
  +     assertNull(vars.get("VAR2_4"));
  +
  +     split = SplitParams("a|b|c","VAR3","|");
  +     split.execute();
  +     assertEquals("a|b|c",vars.get("VAR3"));
  +     assertEquals("3",vars.get("VAR3_n"));
  +     assertEquals("a",vars.get("VAR3_1"));
  +     assertEquals("b",vars.get("VAR3_2"));
  +     assertEquals("c",vars.get("VAR3_3"));
  +     assertNull(vars.get("VAR3_4"));
  +
  +     split = SplitParams("a|b||","VAR4","|");
  +     split.execute();
  +     assertEquals("a|b||",vars.get("VAR4"));
  +     assertEquals("3",vars.get("VAR4_n"));
  +     assertEquals("a",vars.get("VAR4_1"));
  +     assertEquals("b",vars.get("VAR4_2"));
  +     assertEquals("?",vars.get("VAR4_3"));
  +     assertNull(vars.get("VAR4_5"));
  +
       }
       
       public void SFFTest1() throws Exception
  
  
  
  No                   revision
  
  Index: PackageTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jmeter/src/functions/org/apache/jmeter/functions/PackageTest.java,v
  retrieving revision 1.10.2.2
  retrieving revision 1.10.2.3
  diff -u -r1.10.2.2 -r1.10.2.3
  --- PackageTest.java  18 Sep 2004 15:50:51 -0000      1.10.2.2
  +++ PackageTest.java  22 Sep 2004 22:07:17 -0000      1.10.2.3
  @@ -35,6 +35,9 @@
   
   import org.apache.jmeter.engine.util.CompoundVariable;
   import org.apache.jmeter.junit.JMeterTestCase;
  +import org.apache.jmeter.threads.JMeterContext;
  +import org.apache.jmeter.threads.JMeterContextService;
  +import org.apache.jmeter.threads.JMeterVariables;
   import org.apache.jorphan.logging.LoggingManager;
   import org.apache.jorphan.util.JMeterStopThreadException;
   import org.apache.log.Logger;
  @@ -83,6 +86,19 @@
                return sff;
        }
   
  +     // Create the StringFromFile function and set its parameters.
  +     private static SplitFunction SplitParams(String p1, String p2, String p3)
  +     throws Exception
  +     {
  +             SplitFunction split = new SplitFunction();
  +             Collection parms = new LinkedList();
  +             parms.add(new CompoundVariable(p1));
  +             if (p2 != null) parms.add(new CompoundVariable(p2));
  +             if (p3 != null) parms.add(new CompoundVariable(p3));
  +             split.setParameters(parms);
  +             return split;
  +     }
  +
        public static Test suite() throws Exception
        {
                   TestSuite allsuites = new TestSuite();
  @@ -112,7 +128,70 @@
                   sff.addTest(new PackageTest("SFFTest5"));
                   allsuites.addTest(sff);
                   
  +                TestSuite split = new TestSuite("SplitFunction");
  +                split.addTest(new PackageTest("SplitTest1"));
  +                allsuites.addTest(split);
  +                
                   return allsuites;
  +    }
  +    
  +    private JMeterContext jmctx = null;
  +     private JMeterVariables vars = null;
  +    public void setUp()
  +    {
  +     jmctx = JMeterContextService.getContext();
  +        jmctx.setVariables(new JMeterVariables());
  +     vars = jmctx.getVariables();
  +    }
  +
  +    public void SplitTest1() throws Exception
  +    {
  +     SplitFunction split=null;
  +     try
  +             {
  +                 split = SplitParams("a,b,c",null,null);
  +                 fail("Expected InvalidVariableException (wrong number of 
parameters)");
  +             }
  +     catch (InvalidVariableException e)
  +             {
  +             //OK
  +             }
  +         split = SplitParams("a,b,c","VAR1",null);
  +     split.execute();
  +     assertEquals("a,b,c",vars.get("VAR1"));
  +     assertEquals("3",vars.get("VAR1_n"));
  +     assertEquals("a",vars.get("VAR1_1"));
  +     assertEquals("b",vars.get("VAR1_2"));
  +     assertEquals("c",vars.get("VAR1_3"));
  +     assertNull(vars.get("VAR1_4"));
  +
  +     split = SplitParams("a,b,c","VAR2",",");
  +     split.execute();
  +     assertEquals("a,b,c",vars.get("VAR2"));
  +     assertEquals("3",vars.get("VAR2_n"));
  +     assertEquals("a",vars.get("VAR2_1"));
  +     assertEquals("b",vars.get("VAR2_2"));
  +     assertEquals("c",vars.get("VAR2_3"));
  +     assertNull(vars.get("VAR2_4"));
  +
  +     split = SplitParams("a|b|c","VAR3","|");
  +     split.execute();
  +     assertEquals("a|b|c",vars.get("VAR3"));
  +     assertEquals("3",vars.get("VAR3_n"));
  +     assertEquals("a",vars.get("VAR3_1"));
  +     assertEquals("b",vars.get("VAR3_2"));
  +     assertEquals("c",vars.get("VAR3_3"));
  +     assertNull(vars.get("VAR3_4"));
  +
  +     split = SplitParams("a|b||","VAR4","|");
  +     split.execute();
  +     assertEquals("a|b||",vars.get("VAR4"));
  +     assertEquals("3",vars.get("VAR4_n"));
  +     assertEquals("a",vars.get("VAR4_1"));
  +     assertEquals("b",vars.get("VAR4_2"));
  +     assertEquals("?",vars.get("VAR4_3"));
  +     assertNull(vars.get("VAR4_5"));
  +
       }
       
       public void SFFTest1() throws Exception
  
  
  
  1.1.2.1   +127 -0    
jakarta-jmeter/src/functions/org/apache/jmeter/functions/Attic/SplitFunction.java
  
  
  
  
  No                   revision
  No                   revision
  1.14.2.7  +26 -3     jakarta-jmeter/xdocs/usermanual/functions.xml
  
  Index: functions.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-jmeter/xdocs/usermanual/functions.xml,v
  retrieving revision 1.14.2.6
  retrieving revision 1.14.2.7
  diff -u -r1.14.2.6 -r1.14.2.7
  --- functions.xml     18 Sep 2004 15:50:29 -0000      1.14.2.6
  +++ functions.xml     22 Sep 2004 22:07:17 -0000      1.14.2.7
  @@ -101,8 +101,10 @@
   <li>${refName_g0} to refer to the entire match  parsed by this function.</li>
   <li>${refName_g1} to refer to the first group parsed by this function.</li>
   <li>${refName_g#} to refer to the n<sup>th</sup> group parsed by this function.</li>
  +<li>${refName_matchNr} to refer to the number of groups found by this function.</li>
   </ul>
  -</p></description>
  +</p>
  +</description>
   
   <properties>
           <property name="First argument" required="Yes">The first argument is the 
regular expression
  @@ -423,6 +425,27 @@
           <property name="BeanShell script" required="Yes">A beanshell script (not a 
file name)</property>
           <property name="Name of variable" required="No">A reference name for 
reusing the value
                  computed by this function.</property>
  +        
  +</properties>
  +</component>
  +
  +<component index="16.5.14" name="__split">
  +<description>
  +     <p>
  +     The split function splits the string passed to it according to the delimiter,
  +    and returns the original string. If any delimiters are adjacent, "?" is 
returned as the value.
  +    The split strings are returned in the variables ${VAR_1}, ${VAR_2} etc. 
  +    The count of variables is returned in ${VAR_n}. 
  +     </p>
  +</description>
  +
  +<properties>
  +        <property name="String to split" required="Yes">A delimited string, e.g. 
"a|b|c"</property>
  +        <property name="Name of variable" required="Yes">A reference name for 
reusing the value
  +               computed by this function.</property>
  +        <property name="Delimiter" required="No">The delimiter character, e.g. "|". 
  +If omitted, "," is used. Note that "," would need to be specified as "\,".
  +</property>
           
   </properties>
   </component>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to