summaryrefslogtreecommitdiff
path: root/qpid/java/perftests/visualisation-jfc/src/test
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-09-20 22:56:15 +0000
committerKeith Wall <kwall@apache.org>2012-09-20 22:56:15 +0000
commit884393e19dea9e23ee9dba9abe77b80d68f17af5 (patch)
treeabc240d6998bf8f123501eae4ef970c8ce8bd0a3 /qpid/java/perftests/visualisation-jfc/src/test
parent6a19ed06e9fb321c1f8dc27b99b70565dfed82b1 (diff)
downloadqpid-python-884393e19dea9e23ee9dba9abe77b80d68f17af5.tar.gz
QPID-4338: Performance tests charting: Support long chart descriptions and allow colour/stroke to be controlled
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1388256 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/ChartProductionTest.java14
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ColorFactoryTest.java44
-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/definition/SeriesDefinitionCreatorTest.java28
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java4
-rw-r--r--qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/ChartWriterTest.java28
-rwxr-xr-xqpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/expected-chart-summary.html10
7 files changed, 117 insertions, 15 deletions
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
index 2744e17404..96ec917932 100644
--- 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
@@ -66,7 +66,10 @@ public class ChartProductionTest extends TestCase
super.setUp();
when(_seriesDefinition.getSeriesLegend()).thenReturn(TEST_SERIESLEGEND);
+ when(_seriesDefinition.getStrokeWidth()).thenReturn(null);
+ when(_seriesDefinition.getSeriesColourName()).thenReturn(null);
+ when(_chartingDefinition.getChartStemName()).thenReturn(getName());
when(_chartingDefinition.getChartTitle()).thenReturn(TEST_CHARTTITLE);
when(_chartingDefinition.getChartSubtitle()).thenReturn(TEST_CHARTSUBTITLE);
when(_chartingDefinition.getXAxisTitle()).thenReturn(TEST_XAXIS);
@@ -116,6 +119,15 @@ public class ChartProductionTest extends TestCase
assertChartTitlesAndWriteToFile(builder);
}
+ public void testXYLineChartWithColourAndWidth() throws Exception
+ {
+ when(_seriesDefinition.getStrokeWidth()).thenReturn(3);
+ when(_seriesDefinition.getSeriesColourName()).thenReturn("dark_orange");
+
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.XYLINE, new SampleSeriesBuilder());
+ assertChartTitlesAndWriteToFile(builder);
+ }
+
public void testStatiscticalBarChart() throws Exception
{
ChartBuilder builder = ChartBuilderFactory.createChartBuilder(
@@ -166,7 +178,7 @@ public class ChartProductionTest extends TestCase
assertEquals(1, chart.getCategoryPlot().getDatasetCount());
}
- _writer.writeChartToFileSystem(chart, getName());
+ _writer.writeChartToFileSystem(chart, _chartingDefinition);
}
private class SampleSeriesBuilder implements SeriesBuilder
diff --git a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ColorFactoryTest.java b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ColorFactoryTest.java
new file mode 100644
index 0000000000..e331dbac56
--- /dev/null
+++ b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ColorFactoryTest.java
@@ -0,0 +1,44 @@
+/*
+ * 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 java.awt.Color;
+
+import org.apache.qpid.disttest.charting.chartbuilder.ColorFactory;
+
+import junit.framework.TestCase;
+
+public class ColorFactoryTest extends TestCase
+{
+ public void testBlue()
+ {
+ assertEquals(Color.blue, ColorFactory.toColour("blue"));
+ assertEquals(Color.blue, ColorFactory.toColour("BLUE"));
+ assertEquals(Color.blue, ColorFactory.toColour("Blue"));
+ }
+
+ public void testDarkBlue()
+ {
+ assertEquals(Color.blue.darker(), ColorFactory.toColour("dark_blue"));
+ assertEquals(Color.blue.darker(), ColorFactory.toColour("DARK_BLUE"));
+ assertEquals(Color.blue.darker(), ColorFactory.toColour("Dark_Blue"));
+ }
+
+} \ No newline at end of file
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 5371f3df45..a626ad9466 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
@@ -21,6 +21,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_DESCRIPTION_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;
@@ -40,6 +41,7 @@ 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_CHART_DESCRIPTION = "CHART_DESCRIPTION";
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;
@@ -86,6 +88,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_CHART_DESCRIPTION, definition1.getChartDescription());
assertEquals(TEST_XAXIS_TITLE, definition1.getXAxisTitle());
assertEquals(TEST_YAXIS_TITLE, definition1.getYAxisTitle());
assertEquals(TEST_CHART_TYPE, definition1.getChartType());
@@ -125,6 +128,7 @@ public class ChartingDefinitionCreatorTest extends TestCase
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(CHART_DESCRIPTION_KEY, TEST_CHART_DESCRIPTION);
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/definition/SeriesDefinitionCreatorTest.java b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/SeriesDefinitionCreatorTest.java
index 2187793c53..52e8cdaf93 100644
--- a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/SeriesDefinitionCreatorTest.java
+++ b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/SeriesDefinitionCreatorTest.java
@@ -22,6 +22,8 @@ package org.apache.qpid.disttest.charting.definition;
import static org.apache.qpid.disttest.charting.definition.SeriesDefinitionCreator.SERIES_DIRECTORY_KEY_FORMAT;
import static org.apache.qpid.disttest.charting.definition.SeriesDefinitionCreator.SERIES_LEGEND_KEY_FORMAT;
import static org.apache.qpid.disttest.charting.definition.SeriesDefinitionCreator.SERIES_STATEMENT_KEY_FORMAT;
+import static org.apache.qpid.disttest.charting.definition.SeriesDefinitionCreator.SERIES_COLOUR_NAME_FORMAT;
+import static org.apache.qpid.disttest.charting.definition.SeriesDefinitionCreator.SERIES_STROKE_WIDTH_FORMAT;
import java.util.List;
import java.util.Properties;
@@ -33,6 +35,8 @@ public class SeriesDefinitionCreatorTest extends TestCase
private static final String TEST_SERIES_1_SELECT_STATEMENT = "SERIES_1_SELECT_STATEMENT";
private static final String TEST_SERIES_1_LEGEND = "SERIES_1_LEGEND";
private static final String TEST_SERIES_1_DIR = "SERIES_1_DIR";
+ private static final String TEST_SERIES_1_COLOUR_NAME = "seriesColourName";
+ private static final Integer TEST_SERIES_1_STROKE_WIDTH = 1;;
private static final String TEST_SERIES_1_DIR_WITH_SYSPROP = "${java.io.tmpdir}/mydir";
@@ -52,7 +56,7 @@ public class SeriesDefinitionCreatorTest extends TestCase
public void testOneSeriesDefinition() throws Exception
{
- createTestProperties(1, TEST_SERIES_1_SELECT_STATEMENT, TEST_SERIES_1_LEGEND, TEST_SERIES_1_DIR);
+ createTestProperties(1, TEST_SERIES_1_SELECT_STATEMENT, TEST_SERIES_1_LEGEND, TEST_SERIES_1_DIR, TEST_SERIES_1_COLOUR_NAME, TEST_SERIES_1_STROKE_WIDTH);
List<SeriesDefinition> definitions = _seriesDefinitionLoader.createFromProperties(_properties);
assertEquals(1, definitions.size());
@@ -61,12 +65,14 @@ public class SeriesDefinitionCreatorTest extends TestCase
assertEquals(TEST_SERIES_1_SELECT_STATEMENT, definition.getSeriesStatement());
assertEquals(TEST_SERIES_1_LEGEND, definition.getSeriesLegend());
assertEquals(TEST_SERIES_1_DIR, definition.getSeriesDirectory());
+ assertEquals(TEST_SERIES_1_COLOUR_NAME, definition.getSeriesColourName());
+ assertEquals(TEST_SERIES_1_STROKE_WIDTH, definition.getStrokeWidth());
}
public void testTwoSeriesDefinitions() throws Exception
{
- createTestProperties(1, TEST_SERIES_1_SELECT_STATEMENT, TEST_SERIES_1_LEGEND, TEST_SERIES_1_DIR);
- createTestProperties(2, TEST_SERIES_2_SELECT_STATEMENT, TEST_SERIES_2_LEGEND, TEST_SERIES_2_DIR);
+ createTestProperties(1, TEST_SERIES_1_SELECT_STATEMENT, TEST_SERIES_1_LEGEND, TEST_SERIES_1_DIR, TEST_SERIES_1_COLOUR_NAME, TEST_SERIES_1_STROKE_WIDTH);
+ createTestProperties(2, TEST_SERIES_2_SELECT_STATEMENT, TEST_SERIES_2_LEGEND, TEST_SERIES_2_DIR, null, null);
List<SeriesDefinition> definitions = _seriesDefinitionLoader.createFromProperties(_properties);
assertEquals(2, definitions.size());
@@ -84,8 +90,8 @@ public class SeriesDefinitionCreatorTest extends TestCase
public void testNonSequentialSeriesDefinitionsIgnored() throws Exception
{
- createTestProperties(1, TEST_SERIES_1_SELECT_STATEMENT, TEST_SERIES_1_LEGEND, TEST_SERIES_1_DIR);
- createTestProperties(3, TEST_SERIES_2_SELECT_STATEMENT, TEST_SERIES_2_LEGEND, TEST_SERIES_2_DIR);
+ createTestProperties(1, TEST_SERIES_1_SELECT_STATEMENT, TEST_SERIES_1_LEGEND, TEST_SERIES_1_DIR, TEST_SERIES_1_COLOUR_NAME, TEST_SERIES_1_STROKE_WIDTH);
+ createTestProperties(3, TEST_SERIES_2_SELECT_STATEMENT, TEST_SERIES_2_LEGEND, TEST_SERIES_2_DIR, null, null);
List<SeriesDefinition> definitions = _seriesDefinitionLoader.createFromProperties(_properties);
assertEquals(1, definitions.size());
@@ -94,7 +100,7 @@ public class SeriesDefinitionCreatorTest extends TestCase
public void testSeriesDirectorySubstitution() throws Exception
{
final String tmpDir = System.getProperty("java.io.tmpdir");
- createTestProperties(1, TEST_SERIES_1_SELECT_STATEMENT, TEST_SERIES_1_LEGEND, TEST_SERIES_1_DIR_WITH_SYSPROP);
+ createTestProperties(1, TEST_SERIES_1_SELECT_STATEMENT, TEST_SERIES_1_LEGEND, TEST_SERIES_1_DIR_WITH_SYSPROP, null, null);
List<SeriesDefinition> definitions = _seriesDefinitionLoader.createFromProperties(_properties);
assertEquals(1, definitions.size());
@@ -103,11 +109,19 @@ public class SeriesDefinitionCreatorTest extends TestCase
assertTrue(seriesDefinition1.getSeriesDirectory().startsWith(tmpDir));
}
- private void createTestProperties(int index, String selectStatement, String seriesLegend, String seriesDir) throws Exception
+ private void createTestProperties(int index, String selectStatement, String seriesLegend, String seriesDir, String seriesColourName, Integer seriesStrokeWidth) throws Exception
{
_properties.setProperty(String.format(SERIES_STATEMENT_KEY_FORMAT, index), selectStatement);
_properties.setProperty(String.format(SERIES_LEGEND_KEY_FORMAT, index), seriesLegend);
_properties.setProperty(String.format(SERIES_DIRECTORY_KEY_FORMAT, index), seriesDir);
+ if (seriesColourName != null)
+ {
+ _properties.setProperty(String.format(SERIES_COLOUR_NAME_FORMAT, index), seriesColourName);
+ }
+ if (seriesStrokeWidth != null)
+ {
+ _properties.setProperty(String.format(SERIES_STROKE_WIDTH_FORMAT, index), seriesStrokeWidth.toString());
+ }
}
}
diff --git a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java
index 5148a25bec..dfe35ee199 100644
--- a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java
+++ b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java
@@ -37,6 +37,8 @@ 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 static final String TEST_SERIES1_COLOUR_NAME = "blue";
+ private static final Integer TEST_SERIES1_STROKE_WIDTH = 3;
private SeriesBuilderCallback _seriesWalkerCallback = mock(SeriesBuilderCallback.class);
private JdbcCsvSeriesBuilder _seriesBuilder = new JdbcCsvSeriesBuilder();
@@ -79,7 +81,7 @@ public class JdbcCsvSeriesBuilderTest extends TestCase
private SeriesDefinition createTestSeriesDefinition()
{
- SeriesDefinition definition = new SeriesDefinition(TEST_SERIES_1_SELECT_STATEMENT, TEST_SERIES_1_LEGEND, _testTempDir.getAbsolutePath());
+ SeriesDefinition definition = new SeriesDefinition(TEST_SERIES_1_SELECT_STATEMENT, TEST_SERIES_1_LEGEND, _testTempDir.getAbsolutePath(), TEST_SERIES1_COLOUR_NAME, TEST_SERIES1_STROKE_WIDTH);
return definition;
}
diff --git a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/ChartWriterTest.java b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/ChartWriterTest.java
index 0e176d326b..70998fec0c 100644
--- a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/ChartWriterTest.java
+++ b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/ChartWriterTest.java
@@ -20,6 +20,10 @@
*/
package org.apache.qpid.disttest.charting.writer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+
import java.io.File;
import java.io.FileWriter;
import java.io.InputStream;
@@ -27,10 +31,12 @@ import java.util.Scanner;
import junit.framework.TestCase;
+import org.apache.qpid.disttest.charting.definition.ChartingDefinition;
import org.apache.qpid.test.utils.TestFileUtils;
import org.apache.qpid.util.FileUtils;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
+import org.jfree.chart.servlet.ChartDeleter;
import org.jfree.data.general.DefaultPieDataset;
public class ChartWriterTest extends TestCase
@@ -59,22 +65,32 @@ public class ChartWriterTest extends TestCase
public void testWriteChartToFileSystem()
{
+ ChartingDefinition chartDef1 = mock(ChartingDefinition.class);
+ when(chartDef1.getChartStemName()).thenReturn("chart1");
+
File chart1File = new File(_chartDir, "chart1.png");
assertFalse("chart1 png should not exist yet", chart1File.exists());
- _writer.writeChartToFileSystem(_chart1, "chart1");
+ _writer.writeChartToFileSystem(_chart1, chartDef1);
assertTrue("chart1 png does not exist", chart1File.exists());
}
public void testWriteHtmlSummaryToFileSystemOverwritingExistingFile() throws Exception
{
+ ChartingDefinition chartDef1 = mock(ChartingDefinition.class);
+ when(chartDef1.getChartStemName()).thenReturn("chart1");
+ when(chartDef1.getChartDescription()).thenReturn("chart description1");
+
+ ChartingDefinition chartDef2 = mock(ChartingDefinition.class);
+ when(chartDef2.getChartStemName()).thenReturn("chart2");
+
File summaryFile = new File(_chartDir, ChartWriter.SUMMARY_FILE_NAME);
writeDummyContentToSummaryFileToEnsureItGetsOverwritten(summaryFile);
- _writer.writeChartToFileSystem(_chart2, "chart2");
- _writer.writeChartToFileSystem(_chart1, "chart1");
+ _writer.writeChartToFileSystem(_chart2, chartDef2);
+ _writer.writeChartToFileSystem(_chart1, chartDef1);
_writer.writeHtmlSummaryToFileSystem();
@@ -87,9 +103,13 @@ public class ChartWriterTest extends TestCase
public void testWriteHtmlSummaryToFileSystemDoesNothingIfLessThanTwoCharts()
{
+ ChartingDefinition chartDef1 = mock(ChartingDefinition.class);
+ when(chartDef1.getChartStemName()).thenReturn("chart1");
+ when(chartDef1.getChartDescription()).thenReturn("chart description1");
+
File summaryFile = new File(_chartDir, ChartWriter.SUMMARY_FILE_NAME);
- _writer.writeChartToFileSystem(_chart1, "chart1");
+ _writer.writeChartToFileSystem(_chart1, chartDef1);
_writer.writeHtmlSummaryToFileSystem();
diff --git a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/expected-chart-summary.html b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/expected-chart-summary.html
index 89c508a77e..4b9c2d1713 100755
--- a/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/expected-chart-summary.html
+++ b/qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/expected-chart-summary.html
@@ -1,6 +1,7 @@
<html>
<head>
<title>Performance Charts</title>
+ <style type='text/css'>figure { float: left; display: table; width: 87px;}</style>
</head>
<body>
<ul>
@@ -8,8 +9,13 @@
<li><a href='#chart2.png'>chart2.png</a></li>
</ul>
<a name='chart1.png'/>
- <img src='chart1.png'/>
+ <figure>
+ <img src='chart1.png'/>
+ <figcaption>chart description1</figcaption>
+ </figure>
<a name='chart2.png'/>
- <img src='chart2.png'/>
+ <figure>
+ <img src='chart2.png'/>
+ </figure>
</body>
</html> \ No newline at end of file