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]