changeset 15:ed99188fff20 draft

* src/ReportGenerator.java: Fixed the code which is used to count the number of tested classes in a given package.
author Pavel Tisnovsky <ptisnovs@redhat.com>
date Tue, 15 May 2012 17:50:12 +0200
parents eec2474fdaaa
children b6c8372f5723
files ChangeLog src/ReportGenerator.java
diffstat 2 files changed, 36 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Mar 23 11:55:40 2012 +0100
+++ b/ChangeLog	Tue May 15 17:50:12 2012 +0200
@@ -1,3 +1,9 @@
+2012-05-15  Pavel Tisnovsky  <ptisnovs@redhat.com>
+
+	* src/ReportGenerator.java:
+	Fixed the code which is used to count the number of tested
+	classes in a given package.
+
 2012-03-23  Pavel Tisnovsky  <ptisnovs@redhat.com>
 
 	* src/ClassInfo.java:
--- a/src/ReportGenerator.java	Fri Mar 23 11:55:40 2012 +0100
+++ b/src/ReportGenerator.java	Tue May 15 17:50:12 2012 +0200
@@ -216,7 +216,7 @@
             // compute number of all classes in a package
             final int allClassesCnt = numberOfClassesInPackage(packageName, allClasses);
             // compute number of classes covered by tests
-            final int testedClassesCnt = numberOfClassesInPackage(packageName, testedClasses);
+            final int testedClassesCnt = numberOfTestedClassesInPackage(packageName, testedClasses, classInfoMap);
             // -> in percent
             final float classPercentage = allClassesCnt == 0 ? 0.0f : 100.0f * testedClassesCnt / allClassesCnt;
             // table row background color is based on percentual test coverage ration
@@ -300,6 +300,35 @@
     }
 
     /**
+     * Calculate number of tested classes in given package.
+     * 
+     * @param packageName
+     *            name of package
+     * @param classes
+     *            set of class names
+     * @param classInfoMap 
+     * @return number of classes in given package
+     */
+    private static int numberOfTestedClassesInPackage(String packageName, Set<String> classes, Map<String, ClassInfo> classInfoMap)
+    {
+        int cnt = 0;
+        // iterate through all class names
+        for (String className : classes)
+        {
+            // count only classes in given package
+            if (className.substring(0, className.lastIndexOf('.')).equals(packageName))
+            {
+                ClassInfo clsInfo = classInfoMap.get(className);
+                if (clsInfo != null && !clsInfo.getTestedMethods().isEmpty())
+                {
+                    cnt++;
+                }
+            }
+        }
+        return cnt;
+    }
+
+    /**
      * Add list of all classes to a list of string which represents generated
      * report.
      *