StandardPieToolTipGeneratorTest.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /* ===========================================================
  2. * JFreeChart : a free chart library for the Java(tm) platform
  3. * ===========================================================
  4. *
  5. * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors.
  6. *
  7. * Project Info: http://www.jfree.org/jfreechart/index.html
  8. *
  9. * This library is free software; you can redistribute it and/or modify it
  10. * under the terms of the GNU Lesser General Public License as published by
  11. * the Free Software Foundation; either version 2.1 of the License, or
  12. * (at your option) any later version.
  13. *
  14. * This library is distributed in the hope that it will be useful, but
  15. * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  16. * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
  17. * License for more details.
  18. *
  19. * You should have received a copy of the GNU Lesser General Public
  20. * License along with this library; if not, write to the Free Software
  21. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
  22. * USA.
  23. *
  24. * [Oracle and Java are registered trademarks of Oracle and/or its affiliates.
  25. * Other names may be trademarks of their respective owners.]
  26. *
  27. * ------------------------------------
  28. * StandardPieToolTipGeneratorTest.java
  29. * ------------------------------------
  30. * (C) Copyright 2003-2013, by Object Refinery Limited and Contributors.
  31. *
  32. * Original Author: David Gilbert (for Object Refinery Limited);
  33. * Contributor(s): -;
  34. *
  35. * Changes
  36. * -------
  37. * 18-Mar-2003 : Version 1 (DG);
  38. * 13-Aug-2003 : Added clone tests (DG);
  39. * 04-Mar-2004 : Added test for equals() method (DG);
  40. * ------------- JFREECHART 1.0.x ---------------------------------------------
  41. * 03-May-2006 : Extended test for clone() method (DG);
  42. * 03-May-2006 : Renamed StandardPieItemLabelGeneratorTests
  43. * --> StandardPieToolTipGeneratorTests (DG);
  44. * 23-Apr-2008 : Added testPublicCloneable() (DG);
  45. *
  46. */
  47. package org.jfree.chart.labels;
  48. import static org.junit.Assert.assertEquals;
  49. import static org.junit.Assert.assertFalse;
  50. import static org.junit.Assert.assertTrue;
  51. import java.text.DecimalFormat;
  52. import java.text.NumberFormat;
  53. import org.jfree.chart.TestUtilities;
  54. import org.jfree.util.PublicCloneable;
  55. import org.junit.Test;
  56. /**
  57. * Tests for the {@link StandardPieToolTipGenerator} class.
  58. */
  59. public class StandardPieToolTipGeneratorTest {
  60. /**
  61. * Test that the equals() method distinguishes all fields.
  62. */
  63. @Test
  64. public void testEquals() {
  65. StandardPieToolTipGenerator g1 = new StandardPieToolTipGenerator();
  66. StandardPieToolTipGenerator g2 = new StandardPieToolTipGenerator();
  67. assertTrue(g1.equals(g2));
  68. assertTrue(g2.equals(g1));
  69. g1 = new StandardPieToolTipGenerator("{0}",
  70. new DecimalFormat("#,##0.00"),
  71. NumberFormat.getPercentInstance());
  72. assertFalse(g1.equals(g2));
  73. g2 = new StandardPieToolTipGenerator("{0}",
  74. new DecimalFormat("#,##0.00"),
  75. NumberFormat.getPercentInstance());
  76. assertTrue(g1.equals(g2));
  77. g1 = new StandardPieToolTipGenerator("{0} {1}",
  78. new DecimalFormat("#,##0.00"),
  79. NumberFormat.getPercentInstance());
  80. assertFalse(g1.equals(g2));
  81. g2 = new StandardPieToolTipGenerator("{0} {1}",
  82. new DecimalFormat("#,##0.00"),
  83. NumberFormat.getPercentInstance());
  84. assertTrue(g1.equals(g2));
  85. g1 = new StandardPieToolTipGenerator("{0} {1}",
  86. new DecimalFormat("#,##0"), NumberFormat.getPercentInstance());
  87. assertFalse(g1.equals(g2));
  88. g2 = new StandardPieToolTipGenerator("{0} {1}",
  89. new DecimalFormat("#,##0"), NumberFormat.getPercentInstance());
  90. assertTrue(g1.equals(g2));
  91. g1 = new StandardPieToolTipGenerator("{0} {1}",
  92. new DecimalFormat("#,##0"), new DecimalFormat("0.000%"));
  93. assertFalse(g1.equals(g2));
  94. g2 = new StandardPieToolTipGenerator("{0} {1}",
  95. new DecimalFormat("#,##0"), new DecimalFormat("0.000%"));
  96. assertTrue(g1.equals(g2));
  97. }
  98. /**
  99. * Simple check that hashCode is implemented.
  100. */
  101. @Test
  102. public void testHashCode() {
  103. StandardPieToolTipGenerator g1
  104. = new StandardPieToolTipGenerator();
  105. StandardPieToolTipGenerator g2
  106. = new StandardPieToolTipGenerator();
  107. assertTrue(g1.equals(g2));
  108. assertTrue(g1.hashCode() == g2.hashCode());
  109. }
  110. /**
  111. * Some checks for cloning.
  112. */
  113. @Test
  114. public void testCloning() throws CloneNotSupportedException {
  115. StandardPieToolTipGenerator g1 = new StandardPieToolTipGenerator();
  116. StandardPieToolTipGenerator g2 = (StandardPieToolTipGenerator)
  117. g1.clone();
  118. assertTrue(g1 != g2);
  119. assertTrue(g1.getClass() == g2.getClass());
  120. assertTrue(g1.equals(g2));
  121. assertTrue(g1.getNumberFormat() != g2.getNumberFormat());
  122. assertTrue(g1.getPercentFormat() != g2.getPercentFormat());
  123. }
  124. /**
  125. * Check to ensure that this class implements PublicCloneable.
  126. */
  127. @Test
  128. public void testPublicCloneable() {
  129. StandardPieToolTipGenerator g1 = new StandardPieToolTipGenerator();
  130. assertTrue(g1 instanceof PublicCloneable);
  131. }
  132. /**
  133. * Serialize an instance, restore it, and check for equality.
  134. */
  135. @Test
  136. public void testSerialization() {
  137. StandardPieToolTipGenerator g1 = new StandardPieToolTipGenerator();
  138. StandardPieToolTipGenerator g2 = (StandardPieToolTipGenerator)
  139. TestUtilities.serialised(g1);
  140. assertEquals(g1, g2);
  141. }
  142. }