Author: sebb
Date: Fri Mar  2 15:34:47 2007
New Revision: 514013

URL: http://svn.apache.org/viewvc?view=rev&rev=514013
Log:
Remove formatting from Calculator classes
Add unit tests for Functor method calls

Added:
    
jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jorphan/TestFunctorUsers.java
Modified:
    
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
    
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
    
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/SummaryReport.java
    
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
    
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
    
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/visualizers/SamplingStatCalculator.java
    
jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/ObjectTableModel.java
    
jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/reflect/Functor.java
    
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java
    
jakarta/jmeter/branches/rel-2-2/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java
    jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml

Modified: 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java?view=diff&rev=514013&r1=514012&r2=514013
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
 Fri Mar  2 15:34:47 2007
@@ -42,6 +42,7 @@
 import javax.swing.JTable;
 import javax.swing.border.Border;
 import javax.swing.border.EmptyBorder;
+import javax.swing.table.TableCellRenderer;
 
 import org.apache.jmeter.gui.action.ActionNames;
 import org.apache.jmeter.gui.action.ActionRouter;
@@ -57,7 +58,10 @@
 import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
 import org.apache.jorphan.gui.JLabeledChoice;
 import org.apache.jorphan.gui.JLabeledTextField;
+import org.apache.jorphan.gui.NumberRenderer;
 import org.apache.jorphan.gui.ObjectTableModel;
+import org.apache.jorphan.gui.RateRenderer;
+import org.apache.jorphan.gui.RendererUtils;
 import org.apache.jorphan.logging.LoggingManager;
 import org.apache.jorphan.reflect.Functor;
 import org.apache.log.Logger;
@@ -147,7 +151,9 @@
 
        public StatGraphVisualizer() {
                super();
-               model = new ObjectTableModel(COLUMNS, new Functor[] {
+               model = new ObjectTableModel(COLUMNS,
+                               SamplingStatCalculator.class,
+                               new Functor[] {
                                new Functor("getLabel"),                        
                //$NON-NLS-1$
                                new Functor("getCount"),                        
                //$NON-NLS-1$
                                new Functor("getMeanAsNumber"),                 
        //$NON-NLS-1$
@@ -156,9 +162,9 @@
                                new Object[] { new Float(.900) }),
                                new Functor("getMin"),                          
                //$NON-NLS-1$
                                new Functor("getMax"),                          
                //$NON-NLS-1$
-                               new Functor("getErrorPercentageString"),        
//$NON-NLS-1$
-                               new Functor("getRateString"),                   
        //$NON-NLS-1$
-                               new Functor("getPageSizeString") },             
        //$NON-NLS-1$
+                               new Functor("getErrorPercentage"),      
//$NON-NLS-1$
+                               new Functor("getRate"),                         
//$NON-NLS-1$
+                               new Functor("getPageSize") },                   
//$NON-NLS-1$
                                new Functor[] { null, null, null, null, null, 
null, null, null, null, null }, 
                                new Class[] { String.class, Long.class, 
Long.class, Long.class, Long.class, Long.class,
                                Long.class, String.class, String.class, 
String.class });
@@ -166,6 +172,26 @@
                init();
        }
 
+       // Column renderers
+       private static final TableCellRenderer[] RENDERERS = 
+               new TableCellRenderer[]{
+                   null, // Label
+                   null, // count
+                   null, // Mean
+                   null, // median
+                   null, // 90%
+                   null, // Min
+                   null, // Max
+                   new NumberRenderer("#0.00%"), // Error %age
+                   new RateRenderer("#.0"),      // Throughpur
+                   new NumberRenderer("#.0"),    // pageSize
+               };
+
+       public static boolean testFunctors(){
+               StatGraphVisualizer instance = new StatGraphVisualizer();
+               return instance.model.checkFunctors(null,instance.getClass());
+       }
+       
        public String getLabelResource() {
                return "aggregate_graph_title";                                 
        //$NON-NLS-1$
        }
@@ -221,6 +247,7 @@
 
                myJTable = new JTable(model);
                myJTable.setPreferredScrollableViewportSize(new Dimension(500, 
80));
+               RendererUtils.applyRenderers(myJTable, RENDERERS);
                myScrollPane = new JScrollPane(myJTable);
         
         graph = new VerticalPanel();

Modified: 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/StatVisualizer.java?view=diff&rev=514013&r1=514012&r2=514013
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/StatVisualizer.java
 Fri Mar  2 15:34:47 2007
@@ -33,6 +33,7 @@
 import javax.swing.JTable;
 import javax.swing.border.Border;
 import javax.swing.border.EmptyBorder;
+import javax.swing.table.TableCellRenderer;
 //import javax.swing.table.AbstractTableModel;
 //import javax.swing.table.TableModel;
 
@@ -41,7 +42,10 @@
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jmeter.visualizers.gui.AbstractVisualizer;
+import org.apache.jorphan.gui.NumberRenderer;
 import org.apache.jorphan.gui.ObjectTableModel;
+import org.apache.jorphan.gui.RateRenderer;
+import org.apache.jorphan.gui.RendererUtils;
 import org.apache.jorphan.reflect.Functor;
 
 /**
@@ -79,6 +83,7 @@
        public StatVisualizer() {
                super();
                model = new ObjectTableModel(COLUMNS, 
+                               SamplingStatCalculator.class,
                 new Functor[] { 
                     new Functor("getLabel"),   //$NON-NLS-1$
                     new Functor("getCount"),  //$NON-NLS-1$
@@ -88,9 +93,9 @@
                             new Object[] { new Float(.900) }), 
                     new Functor("getMin"),  //$NON-NLS-1$
                     new Functor("getMax"),   //$NON-NLS-1$
-                    new Functor("getErrorPercentageString"),   //$NON-NLS-1$
-                    new Functor("getRateString"),  //$NON-NLS-1$
-                               new Functor("getPageSizeString")   //$NON-NLS-1$
+                    new Functor("getErrorPercentage"),   //$NON-NLS-1$
+                    new Functor("getRate"),  //$NON-NLS-1$
+                               new Functor("getPageSize")   //$NON-NLS-1$
                 },
                 new Functor[] { null, null, null, null, null, null, null, 
null, null, null }, 
                 new Class[] { String.class, Long.class, Long.class, 
Long.class, Long.class, 
@@ -99,6 +104,26 @@
                init();
        }
 
+       // Column renderers
+       private static final TableCellRenderer[] RENDERERS = 
+               new TableCellRenderer[]{
+                   null, // Label
+                   null, // count
+                   null, // Mean
+                   null, // median
+                   null, // 90%
+                   null, // Min
+                   null, // Max
+                   new NumberRenderer("#0.00%"), // Error %age
+                   new RateRenderer("#.0"),      // Throughpur
+                   new NumberRenderer("#.0"),    // pageSize
+               };
+
+       public static boolean testFunctors(){
+               StatVisualizer instance = new StatVisualizer();
+               return instance.model.checkFunctors(null,instance.getClass());
+       }
+       
        public String getLabelResource() {
                return "aggregate_report";  //$NON-NLS-1$
        }
@@ -156,6 +181,7 @@
                // new SortFilterModel(myStatTableModel);
                myJTable = new JTable(model);
                myJTable.setPreferredScrollableViewportSize(new Dimension(500, 
70));
+               RendererUtils.applyRenderers(myJTable, RENDERERS);
                myScrollPane = new JScrollPane(myJTable);
                this.add(mainPanel, BorderLayout.NORTH);
                this.add(myScrollPane, BorderLayout.CENTER);
@@ -167,7 +193,6 @@
  * haven't implemented this yet, it needs some non-trivial work done to it to
  * support our dynamically-sizing TableModel for this visualizer.
  * 
- * @version $Revision$
  */
 
 //class SortFilterModel extends AbstractTableModel {

Modified: 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/SummaryReport.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/SummaryReport.java?view=diff&rev=514013&r1=514012&r2=514013
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/SummaryReport.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/SummaryReport.java
 Fri Mar  2 15:34:47 2007
@@ -110,7 +110,7 @@
     
        public static boolean testFunctors(){
                SummaryReport instance = new SummaryReport();
-               return instance.model.checkFunctors(null);
+               return instance.model.checkFunctors(null,instance.getClass());
        }
        
        public String getLabelResource() {

Modified: 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/TableVisualizer.java?view=diff&rev=514013&r1=514012&r2=514013
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/TableVisualizer.java
 Fri Mar  2 15:34:47 2007
@@ -109,7 +109,7 @@
 
        public static boolean testFunctors(){
                TableVisualizer instance = new TableVisualizer();
-               return instance.model.checkFunctors(null);
+               return instance.model.checkFunctors(null,instance.getClass());
        }
        
 

Modified: 
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java?view=diff&rev=514013&r1=514012&r2=514013
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/config/gui/ArgumentsPanel.java
 Fri Mar  2 15:34:47 2007
@@ -341,14 +341,23 @@
         * Initialize the table model used for the arguments table.
         */
        protected void initializeTableModel() {
-               tableModel = new ObjectTableModel(new String[] { 
COLUMN_NAMES_0, COLUMN_NAMES_1 }, new Functor[] {
+               tableModel = new ObjectTableModel(new String[] { 
COLUMN_NAMES_0, COLUMN_NAMES_1 },
+                               Argument.class,
+                               new Functor[] {
                                new Functor("getName"), // $NON-NLS-1$
                                new Functor("getValue") },  // $NON-NLS-1$
-                               new Functor[] { new Functor("setName"), // 
$NON-NLS-1$
+                               new Functor[] {
+                           new Functor("setName"), // $NON-NLS-1$
                                new Functor("setValue") }, // $NON-NLS-1$
                                new Class[] { String.class, String.class });
        }
 
+       public static boolean testFunctors(){
+               ArgumentsPanel instance = new ArgumentsPanel();
+               instance.initializeTableModel();
+               return 
instance.tableModel.checkFunctors(null,instance.getClass());
+       }
+       
        /**
         * Resize the table columns to appropriate widths.
         * 

Modified: 
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/visualizers/SamplingStatCalculator.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/visualizers/SamplingStatCalculator.java?view=diff&rev=514013&r1=514012&r2=514013
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/visualizers/SamplingStatCalculator.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/visualizers/SamplingStatCalculator.java
 Fri Mar  2 15:34:47 2007
@@ -19,7 +19,6 @@
 package org.apache.jmeter.visualizers;
 
 import java.io.Serializable;
-import java.text.DecimalFormat;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -36,17 +35,10 @@
  * the stats out with whatever methods you prefer.
  * 
  * @author James Boutcher
- * @version $Revision$
  */
 public class SamplingStatCalculator implements Serializable {
        private static final Logger log = LoggingManager.getLoggerForClass();
 
-       private static DecimalFormat rateFormatter = new DecimalFormat("#.0");
-
-       private static DecimalFormat errorFormatter = new 
DecimalFormat("#0.00%");
-
-       private static DecimalFormat kbFormatter = new DecimalFormat("#0.00");
-
        private final StatCalculator calculator = new StatCalculator();
 
        private final List storedValues = new Vector();
@@ -143,41 +135,6 @@
        }
 
        /**
-        * Returns a String that represents the throughput associated for this
-        * sampler, in units appropriate to its dimension:
-        * <p>
-        * The number is represented in requests/second or requests/minute or
-        * requests/hour.
-        * <p>
-        * Examples: "34.2/sec" "0.1/sec" "43.0/hour" "15.9/min"
-        * 
-        * @return a String representation of the rate the samples are being 
taken
-        *         at.
-        */
-       public String getRateString() {
-               double rate = getRate();
-
-               if (rate == Double.MAX_VALUE) {
-                       return "N/A";
-               }
-
-               String unit = "sec";
-
-               if (rate < 1.0) {
-                       rate *= 60.0;
-                       unit = "min";
-               }
-               if (rate < 1.0) {
-                       rate *= 60.0;
-                       unit = "hour";
-               }
-
-               String rval = rateFormatter.format(rate) + "/" + unit;
-
-               return (rval);
-       }
-
-       /**
         * Should calculate the average page size, which means divide the bytes 
by number
         * of samples - actually calculates the throughput in bytes / second
         * 
@@ -196,16 +153,6 @@
                return rate;
        }
 
-       /**
-        * formats the Page Size
-        * 
-        * @return
-        */
-       public String getPageSizeString() {
-               double rate = getPageSize() / 1024;
-               return kbFormatter.format(rate);
-       }
-
        public String getLabel() {
                return label;
        }
@@ -301,8 +248,7 @@
 
        /**
         * Returns the raw double value of the percentage of samples with errors
-        * that were recorded. (Between 0.0 and 1.0) If you want a nicer return
-        * format, see [EMAIL PROTECTED] #getErrorPercentageString()}.
+        * that were recorded. (Between 0.0 and 1.0)
         * 
         * @return the raw double value of the percentage of samples with errors
         *         that were recorded.
@@ -318,23 +264,7 @@
        }
 
        /**
-        * Returns a String which represents the percentage of sample errors 
that
-        * have occurred. ("0.00%" through "100.00%")
-        * 
-        * @return a String which represents the percentage of sample errors 
that
-        *         have occurred.
-        */
-       public String getErrorPercentageString() {
-               double myErrorPercentage = this.getErrorPercentage();
-               if (myErrorPercentage < 0) {
-                       myErrorPercentage = 0.0;
-               }
-
-               return (errorFormatter.format(myErrorPercentage));
-       }
-
-       /**
-        * For debugging purposes, mainly.
+        * For debugging purposes, only.
         */
        public String toString() {
                StringBuffer mySB = new StringBuffer();
@@ -343,8 +273,8 @@
                mySB.append("Avg: " + this.getMean() + "  ");
                mySB.append("Min: " + this.getMin() + "  ");
                mySB.append("Max: " + this.getMax() + "  ");
-               mySB.append("Error Rate: " + this.getErrorPercentageString() + 
"  ");
-               mySB.append("Sample Rate: " + this.getRateString());
+               mySB.append("Error Rate: " + this.getErrorPercentage() + "  ");
+               mySB.append("Sample Rate: " + this.getRate());
                return (mySB.toString());
        }
 

Modified: 
jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/ObjectTableModel.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/ObjectTableModel.java?view=diff&rev=514013&r1=514012&r2=514013
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/ObjectTableModel.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/gui/ObjectTableModel.java
 Fri Mar  2 15:34:47 2007
@@ -218,15 +218,20 @@
                return (Class) classes.get(arg0);
        }
        
-       /*
-        * Check all registered functors
+       /**
+        * Check all registered functors.
+        * <p>
+        * <b>** only for use in unit test code **</b>
+        * </p>
         * 
-        * @param value - an instance of the table model row data item (default 
the class provided to the ctr)
+        * @param value - an instance of the table model row data item 
+        * (if null, use the class passed to the constructor).
         * 
-        * ** only for use in unit test code
-        * @return false if at least one Functor cannot be found
+        * @param caller - class of caller.
+        * 
+        * @return false if at least one Functor cannot be found.
         */
-       public boolean checkFunctors(Object _value){
+       public boolean checkFunctors(Object _value, Class caller){
                Object value;
                if (_value == null && objectClass != null) {
                        try {
@@ -245,16 +250,16 @@
                for(int i=0;i<getColumnCount();i++){
                        Functor setMethod = (Functor) writeFunctors.get(i);
                        if (setMethod != null) {
-                               if (!setMethod.checkMethod(value)){
+                               if 
(!setMethod.checkMethod(value,getColumnClass(i))){
                                        status=false;
-                                       log.warn("Cannot find setMethod 
"+setMethod.toString());
+                                       log.warn(caller.getName()+" is 
attempting to use nonexistent "+setMethod.toString());
                                }
                        }
                        Functor getMethod = (Functor) readFunctors.get(i);
                        if (getMethod != null) {
                                if (!getMethod.checkMethod(value)){
                                        status=false;
-                                       log.warn("Cannot find getMethod 
"+getMethod.toString());
+                                       log.warn(caller.getName()+" is 
attempting to use nonexistent "+getMethod.toString());
                                }
                        }
                        

Modified: 
jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/reflect/Functor.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/reflect/Functor.java?view=diff&rev=514013&r1=514012&r2=514013
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/reflect/Functor.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/jorphan/org/apache/jorphan/reflect/Functor.java
 Fri Mar  2 15:34:47 2007
@@ -173,7 +173,7 @@
        }
 
        /*
-        * Check if a Functor method is valid.
+        * Check if a read Functor method is valid.
         * 
         * @deprecated ** for use by Unit test code only **
         * 
@@ -184,6 +184,24 @@
                this.invokee=_invokee;
                try {
                    m = createMethod(getTypes());
+               } catch (Exception e){
+                       // ignored
+               }
+               return null != m;
+       }
+
+       /*
+        * Check if a write Functor method is valid.
+        * 
+        * @deprecated ** for use by Unit test code only **
+        * 
+        * @return true if method exists
+        */
+       public boolean checkMethod(Object _invokee, Class c){
+               Method m = null;
+               this.invokee=_invokee;
+               try {
+                   m = createMethod(new Class[]{c});
                } catch (Exception e){
                        // ignored
                }

Modified: 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java?view=diff&rev=514013&r1=514012&r2=514013
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/gui/HTTPArgumentsPanel.java
 Fri Mar  2 15:34:47 2007
@@ -42,13 +42,28 @@
        private static final String INCLUDE_EQUALS = 
JMeterUtils.getResString("include_equals");
 
        protected void initializeTableModel() {
-               tableModel = new ObjectTableModel(new String[] { 
ArgumentsPanel.COLUMN_NAMES_0, ArgumentsPanel.COLUMN_NAMES_1,
-                               ENCODE_OR_NOT, INCLUDE_EQUALS }, new Functor[] 
{ new Functor("getName"), new Functor("getValue"),
-                               new Functor("isAlwaysEncoded"), new 
Functor("isUseEquals") }, new Functor[] { new Functor("setName"),
-                               new Functor("setValue"), new 
Functor("setAlwaysEncoded"), new Functor("setUseEquals") }, new Class[] {
-                               String.class, String.class, Boolean.class, 
Boolean.class });
+               tableModel = new ObjectTableModel(new String[] {
+                               ArgumentsPanel.COLUMN_NAMES_0, 
ArgumentsPanel.COLUMN_NAMES_1, ENCODE_OR_NOT, INCLUDE_EQUALS },
+                               HTTPArgument.class,
+                               new Functor[] {
+                               new Functor("getName"),
+                               new Functor("getValue"),
+                               new Functor("isAlwaysEncoded"),
+                               new Functor("isUseEquals") },
+                               new Functor[] { 
+                               new Functor("setName"),
+                               new Functor("setValue"),
+                               new Functor("setAlwaysEncoded"),
+                               new Functor("setUseEquals") },
+                               new Class[] {String.class, String.class, 
Boolean.class, Boolean.class });
        }
 
+       public static boolean testFunctors(){
+               HTTPArgumentsPanel instance = new HTTPArgumentsPanel();
+               instance.initializeTableModel();
+               return 
instance.tableModel.checkFunctors(null,instance.getClass());
+       }
+       
        protected void sizeColumns(JTable table) {
                int resizeMode = table.getAutoResizeMode();
                table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

Modified: 
jakarta/jmeter/branches/rel-2-2/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java?view=diff&rev=514013&r1=514012&r2=514013
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java
 (original)
+++ 
jakarta/jmeter/branches/rel-2-2/src/protocol/ldap/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java
 Fri Mar  2 15:34:47 2007
@@ -36,6 +36,7 @@
 import javax.swing.table.TableCellEditor;
 
 import org.apache.jmeter.config.gui.AbstractConfigGui;
+import org.apache.jmeter.config.gui.ArgumentsPanel;
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.testelement.property.PropertyIterator;
 import org.apache.jmeter.util.JMeterUtils;
@@ -321,11 +322,18 @@
         */
        protected void initializeTableModel() {
                tableModel = new ObjectTableModel(new String[] { 
COLUMN_NAMES[0], COLUMN_NAMES[1], COLUMN_NAMES[2] },
+                               LDAPArgument.class,
                                new Functor[] { new Functor("getName"), new 
Functor("getValue"), new Functor("getOpcode") },
                                new Functor[] { new Functor("setName"), new 
Functor("setValue"), new Functor("setOpcode") },
                                new Class[] { String.class, String.class, 
String.class });
        }
 
+       public static boolean testFunctors(){
+               LDAPArgumentsPanel instance = new LDAPArgumentsPanel();
+               instance.initializeTableModel();
+               return 
instance.tableModel.checkFunctors(null,instance.getClass());
+       }
+       
        /*
         * protected void initializeTableModel() { tableModel = new
         * ObjectTableModel( new String[] { ArgumentsPanel.COLUMN_NAMES_0,

Added: 
jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jorphan/TestFunctorUsers.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jorphan/TestFunctorUsers.java?view=auto&rev=514013
==============================================================================
--- 
jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jorphan/TestFunctorUsers.java
 (added)
+++ 
jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jorphan/TestFunctorUsers.java
 Fri Mar  2 15:34:47 2007
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * 
+ */
+
+package org.apache.jorphan;
+
+import org.apache.jmeter.config.gui.ArgumentsPanel;
+import org.apache.jmeter.junit.JMeterTestCase;
+import org.apache.jmeter.protocol.http.gui.HTTPArgumentsPanel;
+import org.apache.jmeter.protocol.ldap.config.gui.LDAPArgumentsPanel;
+import org.apache.jmeter.visualizers.StatGraphVisualizer;
+import org.apache.jmeter.visualizers.StatVisualizer;
+import org.apache.jmeter.visualizers.SummaryReport;
+import org.apache.jmeter.visualizers.TableVisualizer;
+
+/*
+ * Unit tests for classes that use Functors
+ * 
+ */
+public class TestFunctorUsers extends JMeterTestCase {
+
+       public TestFunctorUsers(String arg0) {
+               super(arg0);
+       }
+    
+       public void testSummaryReport() throws Exception{
+               assertTrue("SummaryReport 
Functor",SummaryReport.testFunctors());
+       }
+    
+       public void testTableVisualizer() throws Exception{
+               assertTrue("TableVisualizer 
Functor",TableVisualizer.testFunctors());
+       }
+    
+       public void testStatGraphVisualizer() throws Exception{
+               assertTrue("StatGraphVisualizer 
Functor",StatGraphVisualizer.testFunctors());
+       }
+    
+       public void testStatVisualizer() throws Exception{
+               assertTrue("StatVisualizer 
Functor",StatVisualizer.testFunctors());
+       }
+    
+       public void testArgumentsPanel() throws Exception{
+               assertTrue("ArgumentsPanel 
Functor",ArgumentsPanel.testFunctors());
+       }
+    
+       public void testHTTPArgumentsPanel() throws Exception{
+               assertTrue("HTTPArgumentsPanel 
Functor",HTTPArgumentsPanel.testFunctors());
+       }
+    
+       public void testLDAPArgumentsPanel() throws Exception{
+               assertTrue("LDAPArgumentsPanel 
Functor",LDAPArgumentsPanel.testFunctors());
+       }
+}

Modified: jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml?view=diff&rev=514013&r1=514012&r2=514013
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml (original)
+++ jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml Fri Mar  2 15:34:47 2007
@@ -36,7 +36,7 @@
 <p>
 Bug 22510 - JMeter always uses the first entry in the keystore.
 </p>
-<h4>Incompatible changes:</h4>
+<h4>Incompatible changes (usage):</h4>
 <p>
 Bug 41104: JMeterThread behaviour was changed so that PostProcessors are run 
in forward order
 (as they appear in the test plan) rather than reverse order as previously.
@@ -49,6 +49,11 @@
 so the temporary work-round of using '\' and '@' in the username to delimit 
the domain and realm
 has been removed.
 </p>
+<h4>Incompatible changes (development):</h4>
+<p>
+Calulator and SamplingStatCalculator classes no longer provide any formatting 
of their data.
+Formatting should now be done using the jorphan.gui Renderer classes.
+</p>
 <h4>New functionality:</h4>
 <ul>
 <li>Added httpclient.parameters.file to allow HttpClient parameters to be 
defined</li>
@@ -64,10 +69,15 @@
 <li>Bug 33964 - send file as entire post body if name/type are omitted</li>
 <li>HTTP Mirror Server Workbench element</li>
 <li>Bug 41253 - extend XPathExtractor to work with non-NodeList XPath 
expressions</li>
-<li>Change to htmlparser 2.0</li>
-<li>Updated to xstream 1.2.1/xpp3_min-1.1.3.4.O</li>
 <li>Bug 39717 - use icons in the results tree instead of colors</li>
 <li>Added __V variable function to resolve nested variable names</li>
+</ul>
+
+<h4>Non-functional improvements:</h4>
+<ul>
+<li>Change to htmlparser 2.0</li>
+<li>Updated to xstream 1.2.1/xpp3_min-1.1.3.4.O</li>
+<li>Functor calls can now be unit tested</li>
 </ul>
 
 <h4>Bug fixes:</h4>



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

Reply via email to