KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfree > chart > renderer > junit > BarRendererTests


1 /* ======================================
2  * JFreeChart : a free Java chart library
3  * ======================================
4  *
5  * Project Info: http://www.jfree.org/jfreechart/index.html
6  * Project Lead: David Gilbert (david.gilbert@object-refinery.com);
7  *
8  * (C) Copyright 2000-2003, by Object Refinery Limited and Contributors.
9  *
10  * This library is free software; you can redistribute it and/or modify it under the terms
11  * of the GNU Lesser General Public License as published by the Free Software Foundation;
12  * either version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
15  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16  * See the GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License along with this
19  * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20  * Boston, MA 02111-1307, USA.
21  *
22  * ---------------------
23  * BarRendererTests.java
24  * ---------------------
25  * (C) Copyright 2003 by Object Refinery Limited and Contributors.
26  *
27  * Original Author: David Gilbert (for Object Refinery Limited);
28  * Contributor(s): -;
29  *
30  * $Id: BarRendererTests.java,v 1.2 2003/10/28 16:46:05 mungady Exp $
31  *
32  * Changes
33  * -------
34  * 25-Mar-2003 : Version 1 (DG);
35  * 19-Aug-2003 : Renamed HorizontalBarRendererTests --> BarRendererTests (DG);
36  * 22-Oct-2003 : Added hashCode test (DG);
37  *
38  */

39
40 package org.jfree.chart.renderer.junit;
41
42 import java.awt.Color JavaDoc;
43 import java.io.ByteArrayInputStream JavaDoc;
44 import java.io.ByteArrayOutputStream JavaDoc;
45 import java.io.ObjectInput JavaDoc;
46 import java.io.ObjectInputStream JavaDoc;
47 import java.io.ObjectOutput JavaDoc;
48 import java.io.ObjectOutputStream JavaDoc;
49
50 import junit.framework.Test;
51 import junit.framework.TestCase;
52 import junit.framework.TestSuite;
53
54 import org.jfree.chart.renderer.BarRenderer;
55
56 /**
57  * Tests for the {@link BarRenderer} class.
58  *
59  * @author David Gilbert
60  */

61 public class BarRendererTests extends TestCase {
62
63     /**
64      * Returns the tests as a test suite.
65      *
66      * @return the test suite.
67      */

68     public static Test suite() {
69         return new TestSuite(BarRendererTests.class);
70     }
71
72     /**
73      * Constructs a new set of tests.
74      *
75      * @param name the name of the tests.
76      */

77     public BarRendererTests(String JavaDoc name) {
78         super(name);
79     }
80
81     /**
82      * Test that the equals(...) method distinguishes all fields.
83      */

84     public void testEquals() {
85         BarRenderer r1 = new BarRenderer();
86         BarRenderer r2 = new BarRenderer();
87         assertEquals(r1, r2);
88     }
89
90     /**
91      * Two objects that are equal are required to return the same hashCode.
92      */

93     public void testHashcode() {
94         BarRenderer r1 = new BarRenderer();
95         BarRenderer r2 = new BarRenderer();
96         assertTrue(r1.equals(r2));
97         int h1 = r1.hashCode();
98         int h2 = r2.hashCode();
99         assertEquals(h1, h2);
100     }
101     
102     /**
103      * Confirm that cloning works.
104      */

105     public void testCloning() {
106         BarRenderer r1 = new BarRenderer();
107         BarRenderer r2 = null;
108         try {
109             r2 = (BarRenderer) r1.clone();
110         }
111         catch (CloneNotSupportedException JavaDoc e) {
112             System.err.println("BarRendererTests.testCloning: failed to clone.");
113         }
114         assertTrue(r1 != r2);
115         assertTrue(r1.getClass() == r2.getClass());
116         assertTrue(r1.equals(r2));
117     }
118
119     /**
120      * Serialize an instance, restore it, and check for equality.
121      */

122     public void testSerialization() {
123
124         BarRenderer r1 = new BarRenderer();
125         BarRenderer r2 = null;
126
127         try {
128             ByteArrayOutputStream JavaDoc buffer = new ByteArrayOutputStream JavaDoc();
129             ObjectOutput JavaDoc out = new ObjectOutputStream JavaDoc(buffer);
130             out.writeObject(r1);
131             out.close();
132
133             ObjectInput JavaDoc in = new ObjectInputStream JavaDoc(new ByteArrayInputStream JavaDoc(buffer.toByteArray()));
134             r2 = (BarRenderer) in.readObject();
135             in.close();
136         }
137         catch (Exception JavaDoc e) {
138             System.out.println(e.toString());
139         }
140         assertEquals(r1, r2);
141
142     }
143     
144     /**
145      * Tests each setter method to ensure that it sends an event notification.
146      */

147     public void testEventNotification() {
148         
149         RendererChangeDetector detector = new RendererChangeDetector();
150         BarRenderer r1 = new BarRenderer();
151         r1.addChangeListener(detector);
152         
153         detector.setNotified(false);
154         r1.setPaint(Color.red);
155         assertTrue(detector.getNotified());
156
157     }
158
159 }
160
Popular Tags