コード例 #1
0
        public void TestGraphElementSizing()
        {
            PlotModel graphModel = new PlotModel();

            graphModel.Series.Add(new OxyPlot.Series.LineSeries());
            graphModel.Axes.Add(new OxyPlot.Axes.LinearAxis());

            Mock <IGraphExporter> mockExporter = new Mock <IGraphExporter>();

            mockExporter.Setup <IPlotModel>(e => e.ToPlotModel(graph)).Returns(() => graphModel);
            mockExporter.Setup(e => e.Export(It.IsAny <IPlotModel>(), It.IsAny <double>(), It.IsAny <double>())).Returns((IPlotModel plot, double width, double height) =>
            {
                PlotModel model = plot as PlotModel;
                Assert.AreEqual(2, ((OxyPlot.Series.LineSeries)model.Series[0]).MarkerSize);
                Assert.AreEqual(10, model.DefaultFontSize);
                Assert.AreEqual(10, model.Axes[0].FontSize);
                Assert.AreEqual(10, model.TitleFontSize);
                return(image);
            });
            IGraphExporter exporter = mockExporter.Object;

            renderer = new GraphPageTagRenderer(exporter);

            GraphPage page = new GraphPage(new[] { graph });

            renderer.Render(page, pdfBuilder);
        }
コード例 #2
0
        public void EnsureNoLegend()
        {
            PlotModel graphModel = new PlotModel();

            graphModel.Series.Add(new OxyPlot.Series.LineSeries());
            graphModel.Axes.Add(new OxyPlot.Axes.LinearAxis());
            graphModel.Legends.Add(new OxyPlot.Legends.Legend());

            Mock <IGraphExporter> mockExporter = new Mock <IGraphExporter>();

            mockExporter.Setup <IPlotModel>(e => e.ToPlotModel(graph)).Returns(() => graphModel);
            mockExporter.Setup(e => e.Export(It.IsAny <IPlotModel>(), It.IsAny <double>(), It.IsAny <double>())).Returns((IPlotModel plot, double width, double height) =>
            {
                PlotModel model = plot as PlotModel;
                Assert.AreEqual(0, model.Legends.Count);
                return(image);
            });
            IGraphExporter exporter = mockExporter.Object;

            renderer = new GraphPageTagRenderer(exporter);

            GraphPage page = new GraphPage(new[] { graph });

            renderer.Render(page, pdfBuilder);

            // (Sanity check, just to make sure that the above plumbing actually worked.)
            Assert.AreEqual(1, TestContext.CurrentContext.AssertCount);
        }
コード例 #3
0
        public void TestGraphSizing()
        {
            Mock <IGraphExporter> mockExporter = new Mock <IGraphExporter>();

            mockExporter.Setup(e => e.Export(It.IsAny <IPlotModel>(), It.IsAny <double>(), It.IsAny <double>())).Returns((IPlotModel plot, double width, double height) =>
            {
                // This should be 1/2 page width and 1/3 page height in px.
                // fixme: this isn't really the best way to verify this but it'll do for now.
                Assert.AreEqual(302.362204724, width, 1e-2);
                Assert.AreEqual(317.4803405921916, height, 1e-2);
                return(image);
            });
            IGraphExporter exporter = mockExporter.Object;

            renderer = new GraphPageTagRenderer(exporter);

            GraphPage page = new GraphPage(new[] { graph });

            renderer.Render(page, pdfBuilder);
        }
コード例 #4
0
ファイル: GraphExporterTests.cs プロジェクト: lie112/ApsimX
        public void Setup()
        {
            Mock <Axis> mockAxis = new Mock <Axis>("", AxisPosition.Bottom);

            xAxis = mockAxis.Object;
            yAxis = mockAxis.Object;

            Mock <ILegendConfiguration> mockLegend = new Mock <ILegendConfiguration>();

            mockLegend.Setup(l => l.InsideGraphArea).Returns(() => legendInsideGraphArea);
            mockLegend.Setup(l => l.Orientation).Returns(() => legendOrientation);
            mockLegend.Setup(l => l.Position).Returns(() => legendPos);
            legend = mockLegend.Object;

            Mock <IGraph> mockGraph = new Mock <IGraph>();

            mockGraph.Setup(g => g.Series).Returns(series);
            mockGraph.Setup(g => g.XAxis).Returns(() => xAxis);
            mockGraph.Setup(g => g.YAxis).Returns(() => yAxis);
            mockGraph.Setup(g => g.Legend).Returns(legend);
            graph = mockGraph.Object;

            exporter = new GraphExporter();
        }
コード例 #5
0
ファイル: GraphPageTagRenderer.cs プロジェクト: lie112/ApsimX
 /// <summary>
 /// Create a GraphTagRenderer with a custom image exporter.
 /// </summary>
 /// <param name="exporter">Graph exporter to be used.</param>
 public GraphPageTagRenderer(IGraphExporter exporter)
 {
     this.exporter = exporter;
 }