diff options
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.java | 26 | ||||
| -rw-r--r-- | qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/chartbuilder/ChartProductionTest.java | 166 | ||||
| -rw-r--r-- | qpid/java/perftests/visualisation-jfc/src/test/java/org/apache/qpid/disttest/charting/definition/ChartingDefinitionCreatorTest.java | 4 | ||||
| -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 |
