summaryrefslogtreecommitdiff
path: root/java/perftests/visualisation-jfc/src/test/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'java/perftests/visualisation-jfc/src/test/java/org')
-rw-r--r--java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/BaseChartBuilderTest.java125
-rw-r--r--java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactoryTest.java13
-rw-r--r--java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java130
-rw-r--r--java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ColorFactoryTest.java42
-rw-r--r--java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/TimeSeriesBuilderCallbackTest.java72
-rw-r--r--java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/ChartingDefinitionCreatorTest.java13
-rw-r--r--java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/SeriesDefinitionCreatorTest.java32
-rw-r--r--java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcSeriesBuilderTest.java (renamed from java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java)35
-rw-r--r--java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcUrlGeneratorTest.java85
-rw-r--r--java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/SeriesRowTest.java64
-rw-r--r--java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/ChartWriterTest.java35
-rwxr-xr-xjava/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/expected-chart-summary.html14
12 files changed, 569 insertions, 91 deletions
diff --git a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/BaseChartBuilderTest.java b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/BaseChartBuilderTest.java
new file mode 100644
index 0000000000..c8a98aafa0
--- /dev/null
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/BaseChartBuilderTest.java
@@ -0,0 +1,125 @@
+/*
+ * 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.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.List;
+
+import org.apache.qpid.disttest.charting.definition.ChartingDefinition;
+import org.apache.qpid.disttest.charting.definition.SeriesDefinition;
+import org.apache.qpid.disttest.charting.seriesbuilder.DatasetHolder;
+import org.apache.qpid.disttest.charting.seriesbuilder.SeriesBuilder;
+import org.apache.qpid.test.utils.QpidTestCase;
+import org.jfree.chart.JFreeChart;
+import org.jfree.chart.plot.CategoryPlot;
+import org.jfree.chart.plot.Plot;
+import org.jfree.chart.plot.PlotOrientation;
+import org.jfree.chart.title.TextTitle;
+import org.jfree.data.general.Dataset;
+
+public class BaseChartBuilderTest extends QpidTestCase
+{
+ private static final String CHART_TITLE = "CHART_TITLE";
+ private static final String CHART_SUB_TITLE = "CHART_SUB_TITLE";
+ private static final String X_TITLE = "X_TITLE";
+ private static final String Y_TITLE = "Y_TITLE";
+
+ @SuppressWarnings("unchecked")
+ private List<SeriesDefinition> _seriesDefinitions = mock(List.class);
+
+ private ChartingDefinition _chartingDefinition = mock(ChartingDefinition.class);
+ private SeriesStrokeAndPaintApplier _strokeAndPaintApplier = mock(SeriesStrokeAndPaintApplier.class);
+ private DatasetHolder _datasetHolder = mock(DatasetHolder.class);
+ private SeriesPainter _seriesPainter = mock(SeriesPainter.class);
+
+ private SeriesBuilder _seriesBuilder = mock(SeriesBuilder.class);
+
+ private JFreeChart _jFreeChart;
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ Plot plot = new CategoryPlot();
+ _jFreeChart = new JFreeChart(plot);
+
+ when(_chartingDefinition.getChartTitle()).thenReturn(CHART_TITLE);
+ when(_chartingDefinition.getChartSubtitle()).thenReturn(CHART_SUB_TITLE);
+ when(_chartingDefinition.getXAxisTitle()).thenReturn(X_TITLE);
+ when(_chartingDefinition.getYAxisTitle()).thenReturn(Y_TITLE);
+ when(_chartingDefinition.getSeriesDefinitions()).thenReturn(_seriesDefinitions );
+ }
+
+ public void testBuildChart()
+ {
+ BaseChartBuilder chartBuilder = new ChartBuilder(_seriesBuilder, _strokeAndPaintApplier, _datasetHolder)
+ {
+ @Override
+ protected JFreeChart createChartImpl(String title, String xAxisTitle, String yAxisTitle, Dataset dataset, PlotOrientation plotOrientation, boolean showLegend, boolean showToolTips, boolean showUrls)
+ {
+ assertEquals(CHART_TITLE, title);
+ assertEquals(X_TITLE, xAxisTitle);
+ assertEquals(Y_TITLE, yAxisTitle);
+
+ return _jFreeChart;
+ }
+ };
+
+ JFreeChart chart = chartBuilder.buildChart(_chartingDefinition);
+
+ assertEquals(BaseChartBuilder.BLUE_GRADIENT, chart.getBackgroundPaint());
+ assertEquals("The *second* subtitle of the generated chart should have the text from the chart definition",
+ CHART_SUB_TITLE, ((TextTitle)chart.getSubtitle(1)).getText());
+ verify(_seriesPainter).applySeriesAppearance(_jFreeChart, _seriesDefinitions, _strokeAndPaintApplier);
+ }
+
+ /**
+ * Extends BaseChartBuilder to allow us to plug in in mock dependencies
+ */
+ private abstract class ChartBuilder extends BaseChartBuilder
+ {
+ private SeriesStrokeAndPaintApplier _seriesStrokeAndPaintApplier;
+ private DatasetHolder _datasetHolder;
+
+ private ChartBuilder(SeriesBuilder seriesBuilder, SeriesStrokeAndPaintApplier seriesStrokeAndPaintApplier, DatasetHolder datasetHolder)
+ {
+ super(seriesBuilder);
+ _seriesStrokeAndPaintApplier = seriesStrokeAndPaintApplier;
+ _datasetHolder = datasetHolder;
+ setSeriesPainter(_seriesPainter);
+ }
+
+ @Override
+ protected SeriesStrokeAndPaintApplier newStrokeAndPaintApplier()
+ {
+ return _seriesStrokeAndPaintApplier;
+ }
+
+ @Override
+ protected DatasetHolder newDatasetHolder()
+ {
+ return _datasetHolder;
+ }
+ }
+}
diff --git a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactoryTest.java b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactoryTest.java
index e735fb58c6..14f81566a6 100644
--- a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactoryTest.java
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartBuilderFactoryTest.java
@@ -19,14 +19,13 @@
*/
package org.apache.qpid.disttest.charting.chartbuilder;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.mock;
import org.apache.qpid.disttest.charting.ChartType;
import org.apache.qpid.disttest.charting.seriesbuilder.SeriesBuilder;
+import org.apache.qpid.test.utils.QpidTestCase;
-import junit.framework.TestCase;
-
-public class ChartBuilderFactoryTest extends TestCase
+public class ChartBuilderFactoryTest extends QpidTestCase
{
private SeriesBuilder _seriesBuilder = mock(SeriesBuilder.class);
@@ -59,4 +58,10 @@ public class ChartBuilderFactoryTest extends TestCase
ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.XYLINE, _seriesBuilder);
assertTrue(builder instanceof XYLineChartBuilder);
}
+
+ public void testTimeSeriesLineChart()
+ {
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.TIMELINE, _seriesBuilder);
+ assertTrue(builder instanceof TimeSeriesLineChartBuilder);
+ }
}
diff --git a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java
index 2744e17404..7af3a6b35e 100644
--- a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java
@@ -19,33 +19,35 @@
*/
package org.apache.qpid.disttest.charting.chartbuilder;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import java.io.File;
import java.util.Collections;
+import java.util.Date;
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.DatasetHolder;
import org.apache.qpid.disttest.charting.seriesbuilder.SeriesBuilder;
+import org.apache.qpid.disttest.charting.seriesbuilder.SeriesRow;
import org.apache.qpid.disttest.charting.writer.ChartWriter;
+import org.apache.qpid.test.utils.QpidTestCase;
import org.apache.qpid.test.utils.TestFileUtils;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.title.ShortTextTitle;
-
-import junit.framework.TestCase;
+import org.jfree.data.general.Dataset;
/**
* 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
+public class ChartProductionTest extends QpidTestCase
{
private static final String TEST_CHARTTITLE = "TEST_CHARTTITLE";
private static final String TEST_CHARTSUBTITLE = "TEST_CHARTSUBTITLE";
@@ -54,6 +56,16 @@ public class ChartProductionTest extends TestCase
private static final String TEST_SERIESLEGEND = "TEST_SERIESLEGEND";
+ private static final SeriesRow[] SIMPLE_SERIES_ROWS = new SeriesRow[]
+ {
+ new SeriesRow(1d, 1d),
+ new SeriesRow(2d, 2d),
+ new SeriesRow(3d, 3d),
+ new SeriesRow(4d, 4d),
+ new SeriesRow(5d, 5d),
+ new SeriesRow(6d, 6d),
+ };
+
private static final String RETAIN_TEST_CHARTS = "retainTestCharts";
private SeriesDefinition _seriesDefinition = mock(SeriesDefinition.class);
@@ -66,12 +78,15 @@ 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);
when(_chartingDefinition.getYAxisTitle()).thenReturn(TEST_YAXIS);
- when(_chartingDefinition.getSeries()).thenReturn(Collections.singletonList(_seriesDefinition));
+ when(_chartingDefinition.getSeriesDefinitions()).thenReturn(Collections.singletonList(_seriesDefinition));
File chartDir = TestFileUtils.createTestDirectory("charts", false);
if (!System.getProperties().containsKey(RETAIN_TEST_CHARTS))
@@ -88,7 +103,7 @@ public class ChartProductionTest extends TestCase
public void testBarChart() throws Exception
{
- ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.BAR, new SampleSeriesBuilder());
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(ChartType.BAR, new SampleSeriesBuilder(SIMPLE_SERIES_ROWS));
assertChartTitlesAndWriteToFile(builder);
}
@@ -116,36 +131,47 @@ public class ChartProductionTest extends TestCase
assertChartTitlesAndWriteToFile(builder);
}
- public void testStatiscticalBarChart() throws Exception
+ 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 testTimeSeriesLineChart() throws Exception
{
+ SeriesRow[] timelineSeriesRows = new SeriesRow[]
+ {
+ new SeriesRow(new Date(1), 1d),
+ new SeriesRow(new Date(2), 2d),
+ new SeriesRow(new Date(3), 3d),
+ new SeriesRow(new Date(4), 4d),
+ new SeriesRow(new Date(5), 5d),
+ new SeriesRow(new Date(6), 6d),
+ };
+ ChartBuilder builder = ChartBuilderFactory.createChartBuilder(
+ ChartType.TIMELINE,
+ new SampleSeriesBuilder(timelineSeriesRows));
+
+ assertChartTitlesAndWriteToFile(builder);
+ }
+
+ public void testStatisticalBarChart() throws Exception
+ {
+ SeriesRow[] statisticalSeriesRows = new SeriesRow[]
+ {
+ new SeriesRow(1d, 1d, 0.5d),
+ new SeriesRow(2d, 2d, 0.4d),
+ new SeriesRow(4d, 4d, 0.3d),
+ new SeriesRow(5d, 5d, 0.2d),
+ new SeriesRow(6d, 6d, 0.1d)
+ };
+
ChartBuilder builder = ChartBuilderFactory.createChartBuilder(
ChartType.STATISTICAL_BAR,
- new 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, new Object[]{1d, 1d, 0.5d});
- _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{2d, 2d, 0.4d});
- _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{4d, 4d, 0.3d});
- _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{5d, 5d, 0.2d});
- _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{6d, 3d, 0.1d});
- _dataPointCallback.endSeries(seriesDefinition);
- }
- }
-
- @Override
- public void setSeriesBuilderCallback(SeriesBuilderCallback dataPointCallback)
- {
- _dataPointCallback = dataPointCallback;
- }
- });
+ new SampleSeriesBuilder(statisticalSeriesRows));
assertChartTitlesAndWriteToFile(builder);
}
@@ -166,33 +192,43 @@ public class ChartProductionTest extends TestCase
assertEquals(1, chart.getCategoryPlot().getDatasetCount());
}
- _writer.writeChartToFileSystem(chart, getName());
+ _writer.writeChartToFileSystem(chart, _chartingDefinition);
}
private class SampleSeriesBuilder implements SeriesBuilder
{
- private SeriesBuilderCallback _dataPointCallback;
+ private DatasetHolder _datasetHolder;
+ private SeriesRow[] _sampleSeriesRows = SIMPLE_SERIES_ROWS;
+
+ public SampleSeriesBuilder()
+ {
+ }
+
+ public SampleSeriesBuilder(SeriesRow[] sampleSeriesRows)
+ {
+ _sampleSeriesRows = sampleSeriesRows;
+ }
@Override
- public void build(List<SeriesDefinition> seriesDefinitions)
+ public Dataset build(List<SeriesDefinition> seriesDefinitions)
{
for (Iterator<SeriesDefinition> iterator = seriesDefinitions.iterator(); iterator.hasNext();)
{
SeriesDefinition seriesDefinition = iterator.next();
- _dataPointCallback.beginSeries(seriesDefinition);
- _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{1d, 1d});
- _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{2d, 2d});
- _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{4d, 4d});
- _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{5d, 5d});
- _dataPointCallback.addDataPointToSeries(seriesDefinition, new Object[]{6d, 3d});
- _dataPointCallback.endSeries(seriesDefinition);
+ _datasetHolder.beginSeries(seriesDefinition);
+ for(SeriesRow seriesRow : _sampleSeriesRows)
+ {
+ _datasetHolder.addDataPointToSeries(seriesDefinition, seriesRow);
+ }
+ _datasetHolder.endSeries(seriesDefinition);
}
+ return _datasetHolder.getPopulatedDataset();
}
@Override
- public void setSeriesBuilderCallback(SeriesBuilderCallback dataPointCallback)
+ public void setDatasetHolder(DatasetHolder dataPointCallback)
{
- _dataPointCallback = dataPointCallback;
+ _datasetHolder = dataPointCallback;
}
}
}
diff --git a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ColorFactoryTest.java b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ColorFactoryTest.java
new file mode 100644
index 0000000000..2656c780bb
--- /dev/null
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ColorFactoryTest.java
@@ -0,0 +1,42 @@
+/*
+ * 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.test.utils.QpidTestCase;
+
+public class ColorFactoryTest extends QpidTestCase
+{
+ 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/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/TimeSeriesBuilderCallbackTest.java b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/TimeSeriesBuilderCallbackTest.java
new file mode 100644
index 0000000000..cb89511389
--- /dev/null
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/TimeSeriesBuilderCallbackTest.java
@@ -0,0 +1,72 @@
+package org.apache.qpid.disttest.charting.chartbuilder;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.TimeZone;
+
+import org.apache.qpid.disttest.charting.definition.SeriesDefinition;
+import org.apache.qpid.disttest.charting.seriesbuilder.SeriesRow;
+import org.apache.qpid.test.utils.QpidTestCase;
+import org.jfree.data.time.TimeSeries;
+import org.jfree.data.time.TimeSeriesCollection;
+import org.jfree.data.time.TimeSeriesDataItem;
+
+public class TimeSeriesBuilderCallbackTest extends QpidTestCase
+{
+ private static final String SERIES_LEGEND = "mySeriesLegend";
+
+ private static final int NUMBER_OF_DATA_POINTS = 3;
+
+ private Date[] _dates;
+ private double[] _values;
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+00:00"));
+
+ calendar.set(2013, Calendar.JANUARY, 1);
+ Date jan1 = calendar.getTime();
+
+ calendar.set(2013, Calendar.JANUARY, 2);
+ Date jan2 = calendar.getTime();
+
+ calendar.set(2013, Calendar.JANUARY, 3);
+ Date jan3 = calendar.getTime();
+
+ _dates = new Date[] {jan1, jan2, jan3};
+ _values = new double[] {2.0, 4.0, 8.0};
+ }
+
+
+ public void testAddPointToSeries()
+ {
+ TimeSeriesHolder timeSeriesHolder = new TimeSeriesHolder();
+
+ SeriesDefinition seriesDefinition = mock(SeriesDefinition.class);
+ when(seriesDefinition.getSeriesLegend()).thenReturn(SERIES_LEGEND);
+
+ timeSeriesHolder.beginSeries(seriesDefinition);
+
+ timeSeriesHolder.addDataPointToSeries(seriesDefinition, new SeriesRow(_dates[0], _values[0]));
+ timeSeriesHolder.addDataPointToSeries(seriesDefinition, new SeriesRow(_dates[1], _values[1]));
+ timeSeriesHolder.addDataPointToSeries(seriesDefinition, new SeriesRow(_dates[2], _values[2]));
+
+ timeSeriesHolder.endSeries(seriesDefinition);
+
+ TimeSeriesCollection timeSeriesCollection = (TimeSeriesCollection) timeSeriesHolder.getPopulatedDataset();
+
+ TimeSeries actualTimeSeries = timeSeriesCollection.getSeries(SERIES_LEGEND);
+ for(int i = 0; i < NUMBER_OF_DATA_POINTS; i++)
+ {
+ TimeSeriesDataItem dataItem0 = actualTimeSeries.getDataItem(i);
+ assertEquals(_dates[i].getTime(), dataItem0.getPeriod().getMiddleMillisecond());
+ assertEquals(_values[i], dataItem0.getValue());
+ }
+ }
+
+}
diff --git a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/ChartingDefinitionCreatorTest.java b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/ChartingDefinitionCreatorTest.java
index 5371f3df45..e4b4d4d272 100644
--- a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/ChartingDefinitionCreatorTest.java
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/ChartingDefinitionCreatorTest.java
@@ -19,8 +19,9 @@
*/
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_DESCRIPTION_KEY;
import static org.apache.qpid.disttest.charting.definition.ChartingDefinitionCreator.CHART_SUBTITLE_KEY;
+import static org.apache.qpid.disttest.charting.definition.ChartingDefinitionCreator.CHART_TITLE_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;
@@ -31,15 +32,15 @@ import java.io.FileWriter;
import java.util.List;
import java.util.Properties;
-import junit.framework.TestCase;
-
import org.apache.qpid.disttest.charting.ChartType;
import org.apache.qpid.disttest.charting.ChartingException;
+import org.apache.qpid.test.utils.QpidTestCase;
-public class ChartingDefinitionCreatorTest extends TestCase
+public class ChartingDefinitionCreatorTest extends QpidTestCase
{
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 +87,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());
@@ -93,7 +95,7 @@ public class ChartingDefinitionCreatorTest extends TestCase
String stemOnly = testDefFile.getName().replaceFirst("\\.chartdef", "");
assertEquals(stemOnly, definition1.getChartStemName());
- final List<SeriesDefinition> seriesDefinitions = definition1.getSeries();
+ final List<SeriesDefinition> seriesDefinitions = definition1.getSeriesDefinitions();
assertEquals(1, seriesDefinitions.size());
SeriesDefinition seriesDefinition = seriesDefinitions.get(0);
assertEquals(TEST_SERIES_SELECT_STATEMENT, seriesDefinition.getSeriesStatement());
@@ -125,6 +127,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/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/SeriesDefinitionCreatorTest.java b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/SeriesDefinitionCreatorTest.java
index 2187793c53..ef605024cc 100644
--- a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/SeriesDefinitionCreatorTest.java
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/SeriesDefinitionCreatorTest.java
@@ -19,20 +19,24 @@
*/
package org.apache.qpid.disttest.charting.definition;
+import static org.apache.qpid.disttest.charting.definition.SeriesDefinitionCreator.SERIES_COLOUR_NAME_FORMAT;
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_STROKE_WIDTH_FORMAT;
import java.util.List;
import java.util.Properties;
-import junit.framework.TestCase;
+import org.apache.qpid.test.utils.QpidTestCase;
-public class SeriesDefinitionCreatorTest extends TestCase
+public class SeriesDefinitionCreatorTest extends QpidTestCase
{
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/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcSeriesBuilderTest.java
index 5148a25bec..b6b4dbe56b 100644
--- a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcCsvSeriesBuilderTest.java
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcSeriesBuilderTest.java
@@ -21,6 +21,7 @@ package org.apache.qpid.disttest.charting.seriesbuilder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import java.io.BufferedWriter;
import java.io.File;
@@ -28,18 +29,17 @@ import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Collections;
-import junit.framework.TestCase;
-
import org.apache.qpid.disttest.charting.definition.SeriesDefinition;
-import org.apache.qpid.disttest.charting.seriesbuilder.JdbcCsvSeriesBuilder;
+import org.apache.qpid.test.utils.QpidTestCase;
-public class JdbcCsvSeriesBuilderTest extends TestCase
+public class JdbcSeriesBuilderTest extends QpidTestCase
{
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();
+ private DatasetHolder _seriesWalkerCallback = mock(DatasetHolder.class);
private File _testTempDir;
@@ -47,21 +47,25 @@ public class JdbcCsvSeriesBuilderTest extends TestCase
protected void setUp() throws Exception
{
super.setUp();
- _seriesBuilder.setSeriesBuilderCallback(_seriesWalkerCallback);
+ when(_seriesWalkerCallback.getNumberOfDimensions()).thenReturn(2);
_testTempDir = createTestTemporaryDirectory();
+ createTestCsvIn(_testTempDir);
}
public void testBuildOneSeries() throws Exception
{
- createTestCsvIn(_testTempDir);
SeriesDefinition seriesDefinition = createTestSeriesDefinition();
- _seriesBuilder.build(Collections.singletonList(seriesDefinition));
+ JdbcSeriesBuilder seriesBuilder = new JdbcSeriesBuilder("org.relique.jdbc.csv.CsvDriver", null);
+
+ seriesBuilder.setDatasetHolder(_seriesWalkerCallback);
+
+ seriesBuilder.build(Collections.singletonList(seriesDefinition));
verify(_seriesWalkerCallback).beginSeries(seriesDefinition);
- verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, new Object[]{"elephant", "2"});
- verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, new Object[]{"lion", "3"});
- verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, new Object[]{"tiger", "4"});
+ verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, new SeriesRow("elephant", "2"));
+ verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, new SeriesRow("lion", "3"));
+ verify(_seriesWalkerCallback).addDataPointToSeries(seriesDefinition, new SeriesRow("tiger", "4"));
verify(_seriesWalkerCallback).endSeries(seriesDefinition);
}
@@ -79,7 +83,12 @@ 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/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcUrlGeneratorTest.java b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcUrlGeneratorTest.java
new file mode 100644
index 0000000000..d53d0ccfe1
--- /dev/null
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/JdbcUrlGeneratorTest.java
@@ -0,0 +1,85 @@
+/*
+ * 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.seriesbuilder;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import org.apache.qpid.disttest.charting.definition.SeriesDefinition;
+import org.apache.qpid.test.utils.QpidTestCase;
+
+public class JdbcUrlGeneratorTest extends QpidTestCase
+{
+ public void testGetJdbcUrlWithoutProvidingAUrlReturnsCsvUrlWithCorrectDirectory()
+ {
+ JdbcUrlGenerator jdbcUrlGenerator = new JdbcUrlGenerator(null);
+ SeriesDefinition seriesDefinition = mock(SeriesDefinition.class);
+ when(seriesDefinition.getSeriesDirectory()).thenReturn("mydir");
+
+ String jdbcUrl = jdbcUrlGenerator.getJdbcUrl(seriesDefinition);
+
+ assertEquals("jdbc:relique:csv:mydir", jdbcUrl);
+ }
+
+ public void testGetJdbcUrlReturnsProvidedUrl()
+ {
+ String urlTemplate = "urlTemplate";
+ JdbcUrlGenerator jdbcUrlGenerator = new JdbcUrlGenerator(urlTemplate);
+ SeriesDefinition seriesDefinition = mock(SeriesDefinition.class);
+
+ String jdbcUrl = jdbcUrlGenerator.getJdbcUrl(seriesDefinition);
+
+ assertEquals(urlTemplate, jdbcUrl);
+ }
+
+ public void testGetJdbcUrlThrowsExceptionIfUrlProvidedAndSeriesDirectorySpecified()
+ {
+ String urlTemplate = "urlTemplate";
+ JdbcUrlGenerator jdbcUrlGenerator = new JdbcUrlGenerator(urlTemplate);
+ SeriesDefinition seriesDefinition = mock(SeriesDefinition.class);
+ when(seriesDefinition.getSeriesDirectory()).thenReturn("mydir");
+
+ try
+ {
+ jdbcUrlGenerator.getJdbcUrl(seriesDefinition);
+ fail("Expected exception not thrown");
+ }
+ catch (IllegalArgumentException e)
+ {
+ // pass
+ }
+ }
+
+ public void testGetJdbcUrlThrowsExceptionWithoutAProvidedUrlOrSeriesDirectory()
+ {
+ JdbcUrlGenerator jdbcUrlGenerator = new JdbcUrlGenerator(null);
+ SeriesDefinition seriesDefinition = mock(SeriesDefinition.class);
+ when(seriesDefinition.getSeriesDirectory()).thenReturn(null);
+
+ try
+ {
+ jdbcUrlGenerator.getJdbcUrl(seriesDefinition);
+ fail("Expected exception not thrown");
+ }
+ catch (IllegalArgumentException e)
+ {
+ // pass
+ }
+ }
+}
diff --git a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/SeriesRowTest.java b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/SeriesRowTest.java
new file mode 100644
index 0000000000..064971aa35
--- /dev/null
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/seriesbuilder/SeriesRowTest.java
@@ -0,0 +1,64 @@
+/*
+ * 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.seriesbuilder;
+
+import org.apache.qpid.test.utils.QpidTestCase;
+
+public class SeriesRowTest extends QpidTestCase
+{
+ private static final Integer[] PAIR = new Integer[] {10, 11};
+
+ public void testValidSeriesRow()
+ {
+ assertEquals(11, SeriesRow.createValidSeriesRow(2, PAIR).dimension(1));
+ }
+
+ public void testValidSeriesRowThrowsExceptionIfArrayTooSmall()
+ {
+ try
+ {
+ SeriesRow.createValidSeriesRow(1, PAIR);
+ fail("Expected exception not thrown");
+ }
+ catch(IllegalArgumentException e)
+ {
+ // pass
+ }
+ }
+
+ public void testDimension()
+ {
+ SeriesRow seriesRow = new SeriesRow(10, 11);
+ assertEquals(10, seriesRow.dimension(0));
+ assertEquals(11, seriesRow.dimension(1));
+ }
+
+ public void testDimensionAsString()
+ {
+ SeriesRow seriesRow = new SeriesRow(10);
+ assertEquals("10", seriesRow.dimensionAsString(0));
+ }
+
+ public void testDimensionAsDouble()
+ {
+ SeriesRow seriesRow = new SeriesRow(10.1);
+ assertEquals(10.1, seriesRow.dimensionAsDouble(0), 0.0);
+ }
+
+}
diff --git a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/ChartWriterTest.java b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/ChartWriterTest.java
index 0e176d326b..9703c66e1f 100644
--- a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/ChartWriterTest.java
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/ChartWriterTest.java
@@ -20,20 +20,23 @@
*/
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;
import java.util.Scanner;
-import junit.framework.TestCase;
-
+import org.apache.qpid.disttest.charting.definition.ChartingDefinition;
+import org.apache.qpid.test.utils.QpidTestCase;
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.data.general.DefaultPieDataset;
-public class ChartWriterTest extends TestCase
+public class ChartWriterTest extends QpidTestCase
{
private JFreeChart _chart1;
private JFreeChart _chart2;
@@ -59,24 +62,34 @@ 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();
+ _writer.writeHtmlSummaryToFileSystem("Performance Charts");
InputStream expectedSummaryFileInputStream = getClass().getResourceAsStream("expected-chart-summary.html");
String expectedSummaryContent = new Scanner(expectedSummaryFileInputStream).useDelimiter("\\A").next();
@@ -87,11 +100,15 @@ 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();
+ _writer.writeHtmlSummaryToFileSystem("Performance Charts");
assertFalse("Only one chart generated so no summary file should have been written",
summaryFile.exists());
diff --git a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/expected-chart-summary.html b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/expected-chart-summary.html
index 89c508a77e..e7dadcb05b 100755
--- a/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/expected-chart-summary.html
+++ b/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/writer/expected-chart-summary.html
@@ -1,15 +1,21 @@
<html>
<head>
<title>Performance Charts</title>
+ <style type='text/css'>figure { float: left; display: table; width: 87px;}</style>
</head>
<body>
<ul>
<li><a href='#chart1.png'>chart1.png</a></li>
<li><a href='#chart2.png'>chart2.png</a></li>
</ul>
- <a name='chart1.png'/>
- <img src='chart1.png'/>
- <a name='chart2.png'/>
- <img src='chart2.png'/>
+ <figure>
+ <a name='chart1.png'/>
+ <img src='chart1.png'/>
+ <figcaption>chart description1</figcaption>
+ </figure>
+ <figure>
+ <a name='chart2.png'/>
+ <img src='chart2.png'/>
+ </figure>
</body>
</html> \ No newline at end of file