summaryrefslogtreecommitdiff
path: root/qpid/java/perftests/visualisation-jfc/src/test
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-06-15 13:57:25 +0000
committerKeith Wall <kwall@apache.org>2012-06-15 13:57:25 +0000
commit178f342319aee9f6f85545aa48e4a442b060d6b6 (patch)
treed15ebdab0a76959a77da6b85d0b104ca4b99438e /qpid/java/perftests/visualisation-jfc/src/test
parentb1a8ce50c064c05db8ffe0eb7d98cf667bc3d109 (diff)
downloadqpid-python-178f342319aee9f6f85545aa48e4a442b060d6b6.tar.gz
QPID-3977: Add support for 3D bar/line charts; XY line charts, chart subtitles, and add Main-Class/Class-Path manifest entries to visualisation JAR to allow for convienient use from command line.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1350624 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/perftests/visualisation-jfc/src/test')
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactoryTest.java26
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java166
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/ChartingDefinitionCreatorTest.java4
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java (renamed from qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/SeriesBuilderTest.java)18
4 files changed, 205 insertions, 9 deletions
diff --git a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactoryTest.java b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactoryTest.java
index bdbbc4a585..e735fb58c6 100644
--- a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactoryTest.java
+++ b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactoryTest.java
@@ -19,22 +19,44 @@
*/
package org.apache.qpid.disttest.charting.chartbuilder;
+import static org.mockito.Mockito.*;
+
import org.apache.qpid.disttest.charting.ChartType;
+import org.apache.qpid.disttest.charting.seriesbuilder.SeriesBuilder;
import junit.framework.TestCase;
public class ChartBuilderFactoryTest extends TestCase
{
+ private SeriesBuilder _seriesBuilder = mock(SeriesBuilder.class);
+
public void testLineChart()
{
- ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.LINE);
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.LINE, _seriesBuilder);
assertTrue(builder instanceof LineChartBuilder);
}
+ public void testLineChart3D()
+ {
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.LINE3D, _seriesBuilder);
+ assertTrue(builder instanceof LineChart3DBuilder);
+ }
+
public void testBarChart()
{
- ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.BAR);
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.BAR, _seriesBuilder);
assertTrue(builder instanceof BarChartBuilder);
}
+ public void testBarChart3D()
+ {
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.BAR3D, _seriesBuilder);
+ assertTrue(builder instanceof BarChart3DBuilder);
+ }
+
+ public void testXYLineChart()
+ {
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.XYLINE, _seriesBuilder);
+ assertTrue(builder instanceof XYLineChartBuilder);
+ }
}
diff --git a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java
new file mode 100644
index 0000000000..2e97772f37
--- /dev/null
+++ b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java
@@ -0,0 +1,166 @@
+/*
+ * 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.qpid.disttest.charting.chartbuilder;
+
+import static org.mockito.Mockito.*;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.qpid.disttest.charting.ChartType;
+import org.apache.qpid.disttest.charting.definition.ChartingDefinition;
+import org.apache.qpid.disttest.charting.definition.SeriesDefinition;
+import org.apache.qpid.disttest.charting.seriesbuilder.SeriesBuilderCallback;
+import org.apache.qpid.disttest.charting.seriesbuilder.SeriesBuilder;
+import org.apache.qpid.disttest.charting.writer.ChartWriter;
+import org.jfree.chart.JFreeChart;
+import org.jfree.chart.plot.XYPlot;
+import org.jfree.chart.title.ShortTextTitle;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests the production of the different chart types. To manually
+ * verify the generated output, set the system property {@link #RETAIN_TEST_CHARTS}
+ * to prevent the automatic deletion of the test chart directory.
+ *
+ */
+public class ChartProductionTest extends TestCase
+{
+ private static final String TEST_CHARTTITLE = "TEST_CHARTTITLE";
+ private static final String TEST_CHARTSUBTITLE = "TEST_CHARTSUBTITLE";
+ private static final String TEST_XAXIS = "TEST_XAXIS";
+ private static final String TEST_YAXIS = "TEST_YAXIS";
+
+ private static final String TEST_SERIESLEGEND = "TEST_SERIESLEGEND";
+
+ private static final String SYSTEM_TMP_DIR = System.getProperty("java.io.tmpdir");
+ private static final String CHART_DIRECTORY = "charts." + System.currentTimeMillis();
+ private static final String RETAIN_TEST_CHARTS = "retainTestCharts";
+
+ private SeriesDefinition _seriesDefinition = mock(SeriesDefinition.class);
+ private ChartingDefinition _chartingDefinition = mock(ChartingDefinition.class);
+ private ChartWriter _writer = new ChartWriter();
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ when(_seriesDefinition.getSeriesLegend()).thenReturn(TEST_SERIESLEGEND);
+
+ when(_chartingDefinition.getChartTitle()).thenReturn(TEST_CHARTTITLE);
+ when(_chartingDefinition.getChartSubtitle()).thenReturn(TEST_CHARTSUBTITLE);
+ when(_chartingDefinition.getXAxisTitle()).thenReturn(TEST_XAXIS);
+ when(_chartingDefinition.getYAxisTitle()).thenReturn(TEST_YAXIS);
+ when(_chartingDefinition.getSeries()).thenReturn(Collections.singletonList(_seriesDefinition));
+
+ File chartDir = new File(SYSTEM_TMP_DIR, CHART_DIRECTORY);
+ chartDir.mkdirs();
+ if (!System.getProperties().containsKey(RETAIN_TEST_CHARTS))
+ {
+ chartDir.deleteOnExit();
+ }
+ else
+ {
+ System.out.println("Charting directory for manual observation " + chartDir);
+ }
+
+ _writer.setOutputDirectory(chartDir);
+ }
+
+ public void testBarChart() throws Exception
+ {
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.BAR, new SampleSeriesBuilder());
+ assertChartTitlesAndWriteToFile(builder);
+ }
+
+ public void testBar3DChart() throws Exception
+ {
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.BAR3D, new SampleSeriesBuilder());
+ assertChartTitlesAndWriteToFile(builder);
+ }
+
+ public void testLineChart() throws Exception
+ {
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.LINE, new SampleSeriesBuilder());
+ assertChartTitlesAndWriteToFile(builder);
+ }
+
+ public void testLine3DChart() throws Exception
+ {
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.LINE3D, new SampleSeriesBuilder());
+ assertChartTitlesAndWriteToFile(builder);
+ }
+ public void testXYLineChart() throws Exception
+ {
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.XYLINE, new SampleSeriesBuilder());
+ assertChartTitlesAndWriteToFile(builder);
+ }
+
+ private void assertChartTitlesAndWriteToFile(ChartBuilder builder)
+ {
+ JFreeChart chart = builder.buildChart(_chartingDefinition);
+ assertEquals(TEST_CHARTTITLE, chart.getTitle().getText());
+ assertEquals(TEST_CHARTSUBTITLE, ((ShortTextTitle)chart.getSubtitle(1)).getText());
+ assertEquals(TEST_SERIESLEGEND, chart.getPlot().getLegendItems().get(0).getLabel());
+
+ if (chart.getPlot() instanceof XYPlot)
+ {
+ assertEquals(1, chart.getXYPlot().getDatasetCount());
+ }
+ else
+ {
+ assertEquals(1, chart.getCategoryPlot().getDatasetCount());
+ }
+
+ _writer.writeChartToFileSystem(chart, getName());
+ }
+
+ private class SampleSeriesBuilder implements SeriesBuilder
+ {
+ private SeriesBuilderCallback _dataPointCallback;
+
+ @Override
+ public void build(List<SeriesDefinition> seriesDefinitions)
+ {
+ for (Iterator<SeriesDefinition> iterator = seriesDefinitions.iterator(); iterator
+ .hasNext();)
+ {
+ SeriesDefinition seriesDefinition = iterator.next();
+ _dataPointCallback.beginSeries(seriesDefinition);
+ _dataPointCallback.addDataPointToSeries(seriesDefinition, Double.valueOf(1), Double.valueOf(1));
+ _dataPointCallback.addDataPointToSeries(seriesDefinition, Double.valueOf(2), Double.valueOf(2));
+ _dataPointCallback.addDataPointToSeries(seriesDefinition, Double.valueOf(4), Double.valueOf(4));
+ _dataPointCallback.addDataPointToSeries(seriesDefinition, Double.valueOf(5), Double.valueOf(5));
+ _dataPointCallback.addDataPointToSeries(seriesDefinition, Double.valueOf(6), Double.valueOf(3));
+ _dataPointCallback.endSeries(seriesDefinition);
+ }
+ }
+
+ @Override
+ public void setSeriesBuilderCallback(SeriesBuilderCallback dataPointCallback)
+ {
+ _dataPointCallback = dataPointCallback;
+ }
+ }
+}
diff --git a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/ChartingDefinitionCreatorTest.java b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/ChartingDefinitionCreatorTest.java
index 80d1cc3d21..5371f3df45 100644
--- a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/ChartingDefinitionCreatorTest.java
+++ b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/ChartingDefinitionCreatorTest.java
@@ -20,6 +20,7 @@
package org.apache.qpid.disttest.charting.definition;
import static org.apache.qpid.disttest.charting.definition.ChartingDefinitionCreator.CHART_TITLE_KEY;
+import static org.apache.qpid.disttest.charting.definition.ChartingDefinitionCreator.CHART_SUBTITLE_KEY;
import static org.apache.qpid.disttest.charting.definition.ChartingDefinitionCreator.CHART_TYPE_KEY;
import static org.apache.qpid.disttest.charting.definition.ChartingDefinitionCreator.XAXIS_TITLE_KEY;
import static org.apache.qpid.disttest.charting.definition.ChartingDefinitionCreator.YAXIS_TITLE_KEY;
@@ -38,6 +39,7 @@ import org.apache.qpid.disttest.charting.ChartingException;
public class ChartingDefinitionCreatorTest extends TestCase
{
private static final String TEST_CHART_TITLE = "CHART_TITLE";
+ private static final String TEST_CHART_SUBTITLE = "CHART_SUBTITLE";
private static final String TEST_XAXIS_TITLE = "XAXIS_TITLE";
private static final String TEST_YAXIS_TITLE = "YAXIS_TITLE";
private static final ChartType TEST_CHART_TYPE = ChartType.LINE;
@@ -83,6 +85,7 @@ public class ChartingDefinitionCreatorTest extends TestCase
ChartingDefinition definition1 = definitions.get(0);
assertEquals(TEST_CHART_TITLE, definition1.getChartTitle());
+ assertEquals(TEST_CHART_SUBTITLE, definition1.getChartSubtitle());
assertEquals(TEST_XAXIS_TITLE, definition1.getXAxisTitle());
assertEquals(TEST_YAXIS_TITLE, definition1.getYAxisTitle());
assertEquals(TEST_CHART_TYPE, definition1.getChartType());
@@ -121,6 +124,7 @@ public class ChartingDefinitionCreatorTest extends TestCase
Properties props = new Properties();
props.setProperty(CHART_TYPE_KEY, TEST_CHART_TYPE.name());
props.setProperty(CHART_TITLE_KEY, TEST_CHART_TITLE);
+ props.setProperty(CHART_SUBTITLE_KEY, TEST_CHART_SUBTITLE);
props.setProperty(XAXIS_TITLE_KEY, TEST_XAXIS_TITLE);
props.setProperty(YAXIS_TITLE_KEY, TEST_YAXIS_TITLE);
diff --git a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/SeriesBuilderTest.java b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java
index 1b1c9969b3..ae241b453d 100644
--- a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/SeriesBuilderTest.java
+++ b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java
@@ -17,7 +17,7 @@
* under the License.
*
*/
-package org.apache.qpid.disttest.charting.chartbuilder;
+package org.apache.qpid.disttest.charting.seriesbuilder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -31,14 +31,15 @@ import java.util.Collections;
import junit.framework.TestCase;
import org.apache.qpid.disttest.charting.definition.SeriesDefinition;
+import org.apache.qpid.disttest.charting.seriesbuilder.JdbcCsvSeriesBuilder;
-public class SeriesBuilderTest extends TestCase
+public class JdbcCsvSeriesBuilderTest extends TestCase
{
private static final String TEST_SERIES_1_SELECT_STATEMENT = "SELECT A, B FROM test";
private static final String TEST_SERIES_1_LEGEND = "SERIES_1_LEGEND";
- private DataPointCallback _dataPointCallback = mock(DataPointCallback.class);
- private SeriesBuilder _seriesBuilder = new SeriesBuilder(_dataPointCallback);
+ private SeriesBuilderCallback _seriesWalkerCallback = mock(SeriesBuilderCallback.class);
+ private JdbcCsvSeriesBuilder _seriesBuilder = new JdbcCsvSeriesBuilder();
private File _testTempDir;
@@ -46,6 +47,7 @@ public class SeriesBuilderTest extends TestCase
protected void setUp() throws Exception
{
super.setUp();
+ _seriesBuilder.setSeriesBuilderCallback(_seriesWalkerCallback);
_testTempDir = createTestTemporaryDirectory();
}
@@ -56,9 +58,11 @@ public class SeriesBuilderTest extends TestCase
_seriesBuilder.build(Collections.singletonList(seriesDefinition));
- verify(_dataPointCallback).addDataPointToSeries(seriesDefinition, (Object)"elephant", (Object)2.0);
- verify(_dataPointCallback).addDataPointToSeries(seriesDefinition, (Object)"lion", (Object)3.0);
- verify(_dataPointCallback).addDataPointToSeries(seriesDefinition, (Object)"tiger", (Object)4.0);
+ verify(_seriesWalkerCallback).beginSeries(seriesDefinition);
+ verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, (Object)"elephant", (Object)"2");
+ verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, (Object)"lion", (Object)"3");
+ verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, (Object)"tiger", (Object)"4");
+ verify(_seriesWalkerCallback).endSeries(seriesDefinition);
}
private void createTestCsvIn(File testDir) throws Exception