abstractrenderertests.java

来自「JfreeChart 常用图表例子」· Java 代码 · 共 409 行

JAVA
409
字号
/* =========================================================== * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors. * * Project Info:  http://www.jfree.org/jfreechart/index.html * * This library is free software; you can redistribute it and/or modify it  * under the terms of the GNU Lesser General Public License as published by  * the Free Software Foundation; either version 2.1 of the License, or  * (at your option) any later version. * * This library is distributed in the hope that it will be useful, but  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public  * License for more details. * * You should have received a copy of the GNU Lesser General Public License  * along with this library; if not, write to the Free Software Foundation,  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * [Java is a trademark or registered trademark of Sun Microsystems, Inc.  * in the United States and other countries.] * * -------------------------- * AbstractRendererTests.java * -------------------------- * (C) Copyright 2003, 2004, by Object Refinery Limited and Contributors. * * Original Author:  David Gilbert (for Object Refinery Limited); * Contributor(s):   -; * * $Id: AbstractRendererTests.java,v 1.3 2005/03/16 16:18:43 mungady Exp $ * * Changes * ------- * 23-Oct-2003 : Version 1 (DG); * 01-Mar-2004 : Added serialization test (DG); * */package org.jfree.chart.renderer.junit;import java.awt.BasicStroke;import java.awt.Color;import java.awt.Font;import java.awt.Shape;import java.awt.Stroke;import java.awt.geom.Rectangle2D;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInput;import java.io.ObjectInputStream;import java.io.ObjectOutput;import java.io.ObjectOutputStream;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import org.jfree.chart.event.RendererChangeEvent;import org.jfree.chart.labels.ItemLabelAnchor;import org.jfree.chart.labels.ItemLabelPosition;import org.jfree.chart.renderer.AbstractRenderer;import org.jfree.chart.renderer.category.BarRenderer;import org.jfree.ui.TextAnchor;/** * Tests for the {@link AbstractRenderer} class. */public class AbstractRendererTests extends TestCase {    /**     * Returns the tests as a test suite.     *     * @return The test suite.     */    public static Test suite() {        return new TestSuite(AbstractRendererTests.class);    }    /**     * Constructs a new set of tests.     *     * @param name  the name of the tests.     */    public AbstractRendererTests(String name) {        super(name);    }        /**     * Test that setting the series visibility for ALL series does in fact work.     */    public void testSetSeriesVisible() {        BarRenderer r = new BarRenderer();        r.setSeriesVisible(Boolean.TRUE);        assertTrue(r.getItemVisible(0, 0));    }    /**     * Test that setting the paint for ALL series does in fact work.     */    public void testSetPaint() {        BarRenderer r = new BarRenderer();        r.setPaint(Color.orange);        assertEquals(Color.orange, r.getItemPaint(0, 0));    }    /**     * Test that setting the outline paint for ALL series does in fact work.     */    public void testSetOutlinePaint() {        BarRenderer r = new BarRenderer();        r.setOutlinePaint(Color.orange);        assertEquals(Color.orange, r.getItemOutlinePaint(0, 0));    }    /**     * Test that setting the stroke for ALL series does in fact work.     */    public void testSetStroke() {        BarRenderer r = new BarRenderer();        Stroke s = new BasicStroke(10.0f);        r.setStroke(s);        assertEquals(s, r.getItemStroke(0, 0));    }    /**     * Test that setting the outline stroke for ALL series does in fact work.     */    public void testSetOutlineStroke() {        BarRenderer r = new BarRenderer();        Stroke s = new BasicStroke(10.0f);        r.setOutlineStroke(s);        assertEquals(s, r.getItemOutlineStroke(0, 0));    }    /**     * Test that setting the shape for ALL series does in fact work.     */    public void testSetShape() {        BarRenderer r = new BarRenderer();        Shape s = new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0);        r.setShape(s);        assertEquals(s, r.getItemShape(0, 0));    }    /**     * Test that setting the item label visibility for ALL series does in fact      * work.     */    public void testSetItemLabelsVisible() {        BarRenderer r = new BarRenderer();        r.setItemLabelsVisible(true);        assertTrue(r.isItemLabelVisible(0, 0));    }    /**     * Test that setting the font for ALL series does in fact work (it was      * broken at one point).     */    public void testSetItemLabelFont() {        BarRenderer r = new BarRenderer();        r.setItemLabelFont(new Font("SansSerif", Font.PLAIN, 33));        assertEquals(            new Font("SansSerif", Font.PLAIN, 33), r.getItemLabelFont(0, 0)        );    }    /**     * Test that setting the paint for ALL series does in fact work (it was      * broken at one point).     */    public void testSetItemLabelPaint() {        BarRenderer r = new BarRenderer();        r.setItemLabelPaint(Color.green);        assertEquals(Color.green, r.getItemLabelPaint(0, 0));    }    /**     * Test that setting the positive item label position for ALL series does      * in fact work.     */    public void testSetPositiveItemLabelPosition() {        BarRenderer r = new BarRenderer();        r.setPositiveItemLabelPosition(            new ItemLabelPosition(                ItemLabelAnchor.INSIDE1, TextAnchor.BASELINE_LEFT            )        );        assertEquals(            new ItemLabelPosition(                ItemLabelAnchor.INSIDE1, TextAnchor.BASELINE_LEFT            ),             r.getPositiveItemLabelPosition(0, 0)        );    }    /**     * Test that setting the negative item label position for ALL series does      * in fact work.     */    public void testSetNegativeItemLabelPosition() {        BarRenderer r = new BarRenderer();        r.setNegativeItemLabelPosition(            new ItemLabelPosition(                ItemLabelAnchor.INSIDE1, TextAnchor.BASELINE_LEFT            )        );        assertEquals(            new ItemLabelPosition(                ItemLabelAnchor.INSIDE1, TextAnchor.BASELINE_LEFT            ),             r.getNegativeItemLabelPosition(0, 0)        );    }    /**     * Tests each setter method to ensure that it sends an event notification.     */    public void testEventNotification() {                RendererChangeDetector detector = new RendererChangeDetector();        BarRenderer r1 = new BarRenderer();  // have to use a subclass of                                              // AbstractRenderer        r1.addChangeListener(detector);                // PAINT        detector.setNotified(false);        r1.setPaint(Color.red);        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setSeriesPaint(0, Color.red);        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setBasePaint(Color.red);        assertTrue(detector.getNotified());        // OUTLINE PAINT        detector.setNotified(false);        r1.setOutlinePaint(Color.red);        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setSeriesOutlinePaint(0, Color.red);        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setBaseOutlinePaint(Color.red);        assertTrue(detector.getNotified());                // STROKE        detector.setNotified(false);        r1.setStroke(new BasicStroke(1.0f));        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setSeriesStroke(0, new BasicStroke(1.0f));        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setBaseStroke(new BasicStroke(1.0f));        assertTrue(detector.getNotified());        // OUTLINE STROKE        detector.setNotified(false);        r1.setOutlineStroke(new BasicStroke(1.0f));        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setSeriesOutlineStroke(0, new BasicStroke(1.0f));        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setBaseOutlineStroke(new BasicStroke(1.0f));        assertTrue(detector.getNotified());        // SHAPE        detector.setNotified(false);        r1.setShape(new Rectangle2D.Float());        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setSeriesShape(0, new Rectangle2D.Float());        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setBaseShape(new Rectangle2D.Float());        assertTrue(detector.getNotified());        // ITEM_LABELS_VISIBLE        detector.setNotified(false);        r1.setItemLabelsVisible(Boolean.TRUE);        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setSeriesItemLabelsVisible(0, Boolean.TRUE);        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setBaseItemLabelsVisible(Boolean.TRUE);        assertTrue(detector.getNotified());                // ITEM_LABEL_FONT        detector.setNotified(false);        r1.setItemLabelFont(new Font("Serif", Font.PLAIN, 12));        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setSeriesItemLabelFont(0, new Font("Serif", Font.PLAIN, 12));        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setBaseItemLabelFont(new Font("Serif", Font.PLAIN, 12));        assertTrue(detector.getNotified());                // ITEM_LABEL_PAINT        detector.setNotified(false);        r1.setItemLabelPaint(Color.blue);        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setSeriesItemLabelPaint(0, Color.blue);        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setBaseItemLabelPaint(Color.blue);        assertTrue(detector.getNotified());                // POSITIVE ITEM LABEL POSITION        detector.setNotified(false);        r1.setPositiveItemLabelPosition(            new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER)        );        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setSeriesPositiveItemLabelPosition(            0, new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER)        );        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setBasePositiveItemLabelPosition(            new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER)        );        assertTrue(detector.getNotified());        // NEGATIVE ITEM LABEL ANCHOR        detector.setNotified(false);        r1.setNegativeItemLabelPosition(            new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER)        );        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setSeriesNegativeItemLabelPosition(            0, new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER)        );        assertTrue(detector.getNotified());        detector.setNotified(false);        r1.setBaseNegativeItemLabelPosition(            new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER)        );        assertTrue(detector.getNotified());    }    /**     * Serialize an instance, restore it, and check for equality.  In addition,     * test for a bug that was reported where the listener list is 'null' after      * deserialization.     */    public void testSerialization() {        BarRenderer r1 = new BarRenderer();          BarRenderer r2 = null;        try {            ByteArrayOutputStream buffer = new ByteArrayOutputStream();            ObjectOutput out = new ObjectOutputStream(buffer);            out.writeObject(r1);            out.close();            ObjectInput in = new ObjectInputStream(                new ByteArrayInputStream(buffer.toByteArray())            );            r2 = (BarRenderer) in.readObject();            in.close();        }        catch (Exception e) {            System.out.println(e.toString());        }        assertEquals(r1, r2);        try {            r2.notifyListeners(new RendererChangeEvent(r2));        }        catch (NullPointerException e) {            assertTrue(false);  // failed           }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?