PageRenderTime 26ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/projects/cobertura-1.9.4.1/test/net/sourceforge/cobertura/coveragedata/ClassDataTest.java

https://gitlab.com/essere.lab.public/qualitas.class-corpus
Java | 264 lines | 195 code | 43 blank | 26 comment | 3 complexity | b37912710f97660f95d3d1c2a69f7856 MD5 | raw file
  1. /*
  2. * Cobertura - http://cobertura.sourceforge.net/
  3. *
  4. * Copyright (C) 2003 jcoverage ltd.
  5. * Copyright (C) 2005 Mark Doliner
  6. * Copyright (C) 2006 Jiri Mares
  7. *
  8. * Cobertura is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License as published
  10. * by the Free Software Foundation; either version 2 of the License,
  11. * or (at your option) any later version.
  12. *
  13. * Cobertura is distributed in the hope that it will be useful, but
  14. * WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. * General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License
  19. * along with Cobertura; if not, write to the Free Software
  20. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
  21. * USA
  22. */
  23. package net.sourceforge.cobertura.coveragedata;
  24. import java.util.Collection;
  25. import junit.framework.TestCase;
  26. public class ClassDataTest extends TestCase
  27. {
  28. private final ClassData a = new ClassData("com.example.HelloWorld");
  29. private final ClassData b = new ClassData("com.example.HelloWorld");
  30. private final ClassData c = new ClassData("com.example.HelloWorld");
  31. private final ClassData defPckg = new ClassData("DefaultPackageClass");
  32. public void setUp()
  33. {
  34. a.setSourceFileName("com/example/HelloWorld.java");
  35. b.setSourceFileName("com/example/HelloWorld.java");
  36. c.setSourceFileName("com/example/HelloWorld.java");
  37. defPckg.setSourceFileName("DefaultPackageClass.java");
  38. for (int i = 1; i <= 5; i++)
  39. b.addLine(i, "test", "(I)B");
  40. for (int i = 1; i <= 5; i++)
  41. c.addLine(i, "test", "(I)B");
  42. for (int i = 1; i <= 5; i++)
  43. defPckg.addLine(i, "test", "(I)B");
  44. b.touch(1,1);
  45. b.touch(2,1);
  46. }
  47. public void testBranch()
  48. {
  49. // Setting an invalid line as a branch should not make the line valid
  50. assertFalse(a.hasBranch(2));
  51. a.addLineJump(2, 0);
  52. assertFalse(a.hasBranch(2));
  53. assertFalse(b.hasBranch(2));
  54. b.addLineJump(2, 0);
  55. assertTrue(b.hasBranch(2));
  56. assertTrue(b.hasBranch(2));
  57. b.addLineJump(2, 1);
  58. assertTrue(b.hasBranch(2));
  59. assertFalse(b.hasBranch(4));
  60. b.addLineSwitch(4, 0, 1, 9);
  61. assertTrue(b.hasBranch(4));
  62. Collection branches = b.getBranches();
  63. assertEquals(2, branches.size());
  64. assertEquals(14, b.getNumberOfValidBranches());
  65. assertTrue(branches.contains(new Integer(2)));
  66. assertTrue(branches.contains(new Integer(4)));
  67. //assertTrue(branches.contains(new LineData(2, "test", "(I)B")));
  68. //assertTrue(branches.contains(new LineData(4, "test", "(I)B")));
  69. }
  70. public void testBranchCoverage()
  71. {
  72. assertEquals(0, a.getNumberOfValidBranches());
  73. assertEquals(0, b.getNumberOfValidBranches());
  74. assertEquals(1.00d, a.getBranchCoverageRate(), 0d);
  75. assertEquals(1.00d, b.getBranchCoverageRate(), 0d);
  76. assertEquals(1.00d, a.getBranchCoverageRate("test(I)B"), 0d);
  77. assertEquals(1.00d, b.getBranchCoverageRate("test(I)B"), 0d);
  78. c.addLineJump(1, 0);
  79. c.addLineJump(2, 0);
  80. c.addLineSwitch(3, 0, 1, 3);
  81. c.addLineSwitch(4, 0, 1, 3);
  82. assertEquals(12, c.getNumberOfValidBranches());
  83. assertEquals(0, c.getNumberOfCoveredBranches());
  84. assertEquals(0.00d, c.getBranchCoverageRate(), 0d);
  85. assertEquals(0.00d, c.getBranchCoverageRate("test(I)B"), 0d);
  86. c.touchJump(1, 0, true,1);
  87. c.touchJump(1, 0, false,1);
  88. c.touchJump(2, 0, true,1);
  89. c.touchJump(2, 0, false,1);
  90. assertEquals(12, c.getNumberOfValidBranches());
  91. assertEquals(4, c.getNumberOfCoveredBranches());
  92. assertEquals(0.33d, c.getBranchCoverageRate(), 0.01d);
  93. assertEquals(0.33d, c.getBranchCoverageRate("test(I)B"), 0.01d);
  94. c.touchSwitch(3, 0, 0,1);
  95. c.touchSwitch(3, 0, 1,1);
  96. c.touchSwitch(4, 0, 2,1);
  97. c.touchSwitch(4, 0, -1,1);
  98. assertEquals(12, c.getNumberOfValidBranches());
  99. assertEquals(8, c.getNumberOfCoveredBranches());
  100. assertEquals(0.66d, c.getBranchCoverageRate(), 0.01d);
  101. assertEquals(0.66d, c.getBranchCoverageRate("test(I)B"), 0.01d);
  102. }
  103. public void testConstructor()
  104. {
  105. try
  106. {
  107. new ClassData(null);
  108. fail("Expected an IllegalArgumentException but did not receive one!");
  109. }
  110. catch (IllegalArgumentException e)
  111. {
  112. // Good!
  113. }
  114. assertEquals("HelloWorld", a.getBaseName());
  115. assertEquals("com.example", a.getPackageName());
  116. assertEquals("com.example.HelloWorld", a.getName());
  117. assertEquals("DefaultPackageClass", defPckg.getBaseName());
  118. assertEquals("", defPckg.getPackageName());
  119. assertEquals("DefaultPackageClass", defPckg.getName());
  120. }
  121. public void testEquals()
  122. {
  123. assertFalse(a.equals(null));
  124. assertFalse(a.equals(new Integer(4)));
  125. assertFalse(a.equals(new PackageData("com.example")));
  126. assertTrue(a.equals(a));
  127. assertFalse(a.equals(b));
  128. assertFalse(a.equals(c));
  129. assertFalse(a.equals(defPckg));
  130. assertFalse(b.equals(a));
  131. assertTrue(b.equals(b));
  132. assertFalse(b.equals(c));
  133. assertFalse(b.equals(defPckg));
  134. assertFalse(c.equals(a));
  135. assertFalse(c.equals(b));
  136. assertTrue(c.equals(c));
  137. assertFalse(c.equals(defPckg));
  138. assertFalse(defPckg.equals(a));
  139. assertFalse(defPckg.equals(b));
  140. assertFalse(defPckg.equals(c));
  141. assertTrue(defPckg.equals(defPckg));
  142. c.touch(1,1);
  143. c.touch(2,1);
  144. assertTrue(b.equals(c));
  145. }
  146. public void testLineCoverage()
  147. {
  148. assertEquals(0, a.getNumberOfCoveredLines());
  149. assertEquals(0, a.getNumberOfValidLines());
  150. assertEquals(2, b.getNumberOfCoveredLines());
  151. assertEquals(5, b.getNumberOfValidLines());
  152. assertEquals(0, c.getNumberOfCoveredLines());
  153. assertEquals(5, c.getNumberOfValidLines());
  154. assertEquals(1d, a.getLineCoverageRate(), 0d);
  155. assertEquals(0.4d, b.getLineCoverageRate(), 0d);
  156. assertEquals(0d, c.getLineCoverageRate(), 0d);
  157. assertEquals(1d, a.getLineCoverageRate("test(I)B"), 0d);
  158. assertEquals(0.4d, b.getLineCoverageRate("test(I)B"), 0d);
  159. assertEquals(0d, c.getLineCoverageRate("test(I)B"), 0d);
  160. assertEquals(1d, a.getLineCoverageRate("notReal(I)B"), 0d);
  161. assertEquals(1d, b.getLineCoverageRate("notReal(I)B"), 0d);
  162. assertEquals(1d, c.getLineCoverageRate("notReal(I)B"), 0d);
  163. }
  164. public void testRemoveLine()
  165. {
  166. assertEquals(0, a.getNumberOfValidBranches());
  167. assertEquals(0, a.getNumberOfCoveredBranches());
  168. assertEquals(0, a.getNumberOfValidLines());
  169. a.removeLine(3);
  170. assertEquals(0, a.getNumberOfValidBranches());
  171. assertEquals(0, a.getNumberOfCoveredBranches());
  172. assertEquals(0, a.getNumberOfValidLines());
  173. assertEquals(0, b.getNumberOfValidBranches());
  174. assertEquals(0, a.getNumberOfCoveredBranches());
  175. assertEquals(5, b.getNumberOfValidLines());
  176. b.removeLine(3);
  177. assertEquals(0, b.getNumberOfValidBranches());
  178. assertEquals(0, a.getNumberOfCoveredBranches());
  179. assertEquals(4, b.getNumberOfValidLines());
  180. c.addLineJump(2, 0);
  181. c.addLineSwitch(3, 0, 1, 2);
  182. c.addLineJump(3, 0);
  183. c.addLineJump(4, 0);
  184. assertEquals(9, c.getNumberOfValidBranches());
  185. assertEquals(0, a.getNumberOfCoveredBranches());
  186. assertEquals(5, c.getNumberOfValidLines());
  187. c.removeLine(3);
  188. assertEquals(4, c.getNumberOfValidBranches());
  189. assertEquals(0, a.getNumberOfCoveredBranches());
  190. assertEquals(4, c.getNumberOfValidLines());
  191. }
  192. public void testSourceFileName()
  193. {
  194. a.setSourceFileName(null);
  195. assertEquals("com/example/HelloWorld.java", a.getSourceFileName());
  196. a.setSourceFileName("HelloWorld.java");
  197. assertEquals("com/example/HelloWorld.java", a.getSourceFileName());
  198. ClassData d = new ClassData("org.jaxen.expr.IdentitySet$IdentityWrapp");
  199. assertEquals("org/jaxen/expr/IdentitySet.java", d.getSourceFileName());
  200. ClassData e = new ClassData("org.jaxen.expr.NodeComparator$1");
  201. assertEquals("org/jaxen/expr/NodeComparator.java", e.getSourceFileName());
  202. assertEquals( "DefaultPackageClass.java", defPckg.getSourceFileName());
  203. ClassData f = new ClassData("$strangeClass");
  204. assertEquals( "$strangeClass.java", f.getSourceFileName());
  205. }
  206. public void testTouch()
  207. {
  208. int line = 3;
  209. assertFalse(a.isValidSourceLineNumber(line));
  210. a.touch(line,1);
  211. assertTrue(a.isValidSourceLineNumber(line));
  212. assertTrue(b.isValidSourceLineNumber(line));
  213. assertEquals(0, b.getLineCoverage(line).getHits());
  214. b.touch(line,1);
  215. assertTrue(b.isValidSourceLineNumber(line));
  216. assertEquals(1, b.getLineCoverage(line).getHits());
  217. b.touch(line,1);
  218. assertEquals(2, b.getLineCoverage(line).getHits());
  219. assertTrue(b.isValidSourceLineNumber(line));
  220. }
  221. }