www.pudn.com > jfreechart-0.9.12.zip > CategoryAxisTests.java


/* ====================================== 
 * JFreeChart : a free Java chart library 
 * ====================================== 
 * 
 * Project Info:  http://www.jfree.org/jfreechart/index.html 
 * Project Lead:  David Gilbert (david.gilbert@object-refinery.com); 
 * 
 * (C) Copyright 2000-2003, by Object Refinery Limited and Contributors. 
 * 
 * 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. 
 * 
 * ---------------------- 
 * CategoryAxisTests.java 
 * ---------------------- 
 * (C) Copyright 2003 by Object Refinery Limited and Contributors. 
 * 
 * Original Author:  David Gilbert (for Object Refinery Limited); 
 * Contributor(s):   -; 
 * 
 * $Id: CategoryAxisTests.java,v 1.4 2003/08/15 11:49:43 mungady Exp $ 
 * 
 * Changes 
 * ------- 
 * 18-Mar-2003 : Version 1 (DG); 
 * 13-Aug-2003 : Added clone() test (DG); 
 * 
 */ 
 
package org.jfree.chart.axis.junit; 
 
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.axis.CategoryAxis; 
 
/** 
 * Tests for the {@link CategoryAxis} class. 
 * 
 * @author David Gilbert 
 */ 
public class CategoryAxisTests extends TestCase { 
 
    /** 
     * Returns the tests as a test suite. 
     * 
     * @return the test suite. 
     */ 
    public static Test suite() { 
        return new TestSuite(CategoryAxisTests.class); 
    } 
 
    /** 
     * Constructs a new set of tests. 
     * 
     * @param  name the name of the tests. 
     */ 
    public CategoryAxisTests(String name) { 
        super(name); 
    } 
 
    /** 
     * Confirm that the equals method can distinguish all the required fields. 
     */ 
    public void testEquals() { 
         
        CategoryAxis a1 = new CategoryAxis("Test"); 
        CategoryAxis a2 = new CategoryAxis("Test"); 
        boolean b = a1.equals(a2); 
        assertTrue(a1.equals(a2)); 
         
        // lowerMargin  
        a1.setLowerMargin(0.15); 
        assertFalse(a1.equals(a2)); 
        a2.setLowerMargin(0.15); 
        assertTrue(a1.equals(a2)); 
 
        // upperMargin  
        a1.setUpperMargin(0.15); 
        assertFalse(a1.equals(a2)); 
        a2.setUpperMargin(0.15); 
        assertTrue(a1.equals(a2)); 
       
        // categoryMargin  
        a1.setCategoryMargin(0.15); 
        assertFalse(a1.equals(a2)); 
        a2.setCategoryMargin(0.15); 
        assertTrue(a1.equals(a2)); 
         
        // verticalCategoryLabels;    
        a1.setVerticalCategoryLabels(true); 
        assertFalse(a1.equals(a2)); 
        a2.setVerticalCategoryLabels(true); 
        assertTrue(a1.equals(a2)); 
         
        // private boolean skipCategoryLabelsToFit; 
        a1.setSkipCategoryLabelsToFit(true); 
        assertFalse(a1.equals(a2)); 
        a2.setSkipCategoryLabelsToFit(true); 
        assertTrue(a1.equals(a2)); 
         
        //private int maxTickLineCount; 
        //private List categories; 
        //protected double reservedForTickLabels;     
        //protected double reservedForAxisLabel; 
 
    } 
 
    /** 
     * Confirm that cloning works. 
     */ 
    public void testCloning() { 
        CategoryAxis a1 = new CategoryAxis("Test"); 
        CategoryAxis a2 = null; 
        try { 
            a2 = (CategoryAxis) a1.clone(); 
        } 
        catch (CloneNotSupportedException e) { 
            System.err.println("CategoryAxisTests.testCloning: failed to clone."); 
        } 
        assertTrue(a1 != a2); 
        assertTrue(a1.getClass() == a2.getClass()); 
        assertTrue(a1.equals(a2)); 
    } 
 
    /** 
     * Serialize an instance, restore it, and check for equality. 
     */ 
    public void testSerialization() { 
 
        CategoryAxis a1 = new CategoryAxis("Test Axis"); 
        CategoryAxis a2 = null; 
 
        try { 
            ByteArrayOutputStream buffer = new ByteArrayOutputStream(); 
            ObjectOutput out = new ObjectOutputStream(buffer); 
            out.writeObject(a1); 
            out.close(); 
 
            ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray())); 
            a2 = (CategoryAxis) in.readObject(); 
            in.close(); 
        } 
        catch (Exception e) { 
            System.out.println(e.toString()); 
        } 
        assertEquals(a1, a2); 
 
    } 
 
}