Clover coverage report - Dependency Finder
Coverage timestamp: Mon Nov 29 2010 15:00:50 PST
file stats: LOC: 150   Methods: 7
NCLOC: 90   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
TestDifferencesFactoryWithAPIAndCodeDifferenceStrategy.java 100% 100% 100% 100%
coverage
 1    /*
 2    * Copyright (c) 2001-2009, Jean Tessier
 3    * All rights reserved.
 4    *
 5    * Redistribution and use in source and binary forms, with or without
 6    * modification, are permitted provided that the following conditions
 7    * are met:
 8    *
 9    * * Redistributions of source code must retain the above copyright
 10    * notice, this list of conditions and the following disclaimer.
 11    *
 12    * * Redistributions in binary form must reproduce the above copyright
 13    * notice, this list of conditions and the following disclaimer in the
 14    * documentation and/or other materials provided with the distribution.
 15    *
 16    * * Neither the name of Jean Tessier nor the names of his contributors
 17    * may be used to endorse or promote products derived from this software
 18    * without specific prior written permission.
 19    *
 20    * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 21    * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 22    * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 23    * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
 24    * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 25    * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 26    * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 27    * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 28    * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 29    * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 30    * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 31    */
 32   
 33    package com.jeantessier.diff;
 34   
 35    import com.jeantessier.classreader.*;
 36   
 37    public class TestDifferencesFactoryWithAPIAndCodeDifferenceStrategy extends TestDifferencesFactoryBase {
 38    private DifferencesFactory factory;
 39   
 40  6 protected void setUp() throws Exception {
 41  6 super.setUp();
 42   
 43  6 factory = new DifferencesFactory(new APIDifferenceStrategy(new CodeDifferenceStrategy()));
 44    }
 45   
 46  1 public void testFieldDeclarationDifference() {
 47  1 String className = "ModifiedPackage.ModifiedInterface";
 48  1 Classfile oldClass = getOldJar().getClassfile(className);
 49  1 Classfile newClass = getNewJar().getClassfile(className);
 50   
 51  1 ClassDifferences classDifferences = (ClassDifferences) factory.createClassDifferences(className, oldClass, newClass);
 52   
 53  1 FieldDifferences fieldDifferences = null;
 54  1 for (Differences differences : classDifferences.getFeatureDifferences()) {
 55  11 if (differences.getName().equals(className + ".modifiedField")) {
 56  1 fieldDifferences = (FieldDifferences) differences;
 57    }
 58    }
 59   
 60  1 assertEquals("public static final int modifiedField", fieldDifferences.getOldDeclaration());
 61  1 assertEquals("public static final float modifiedField", fieldDifferences.getNewDeclaration());
 62    }
 63   
 64  1 public void testFieldConstantValueDifference() {
 65  1 String className = "ModifiedPackage.ModifiedInterface";
 66  1 Classfile oldClass = getOldJar().getClassfile(className);
 67  1 Classfile newClass = getNewJar().getClassfile(className);
 68   
 69  1 ClassDifferences classDifferences = (ClassDifferences) factory.createClassDifferences(className, oldClass, newClass);
 70   
 71  1 FieldDifferences fieldDifferences = null;
 72  1 for (Differences differences : classDifferences.getFeatureDifferences()) {
 73  11 if (differences.getName().equals(className + ".modifiedValueField")) {
 74  1 fieldDifferences = (FieldDifferences) differences;
 75    }
 76    }
 77   
 78  1 assertTrue(fieldDifferences.isConstantValueDifference());
 79  1 assertEquals("public static final int modifiedValueField", fieldDifferences.getOldDeclaration());
 80  1 assertEquals("public static final int modifiedValueField", fieldDifferences.getNewDeclaration());
 81    }
 82   
 83  1 public void testConstructorDifference() {
 84  1 String className = "ModifiedPackage.ModifiedClass";
 85  1 Classfile oldClass = getOldJar().getClassfile(className);
 86  1 Classfile newClass = getNewJar().getClassfile(className);
 87   
 88  1 ClassDifferences classDifferences = (ClassDifferences) factory.createClassDifferences(className, oldClass, newClass);
 89   
 90  1 ConstructorDifferences constructorDifferences = null;
 91  1 for (Differences differences : classDifferences.getFeatureDifferences()) {
 92  35 if (differences.getName().equals(className + ".ModifiedClass(int, int, int)")) {
 93  1 constructorDifferences = (ConstructorDifferences) differences;
 94    }
 95    }
 96   
 97  1 assertFalse(constructorDifferences.isCodeDifference());
 98    }
 99   
 100  1 public void testConstructorCodeDifference() {
 101  1 String className = "ModifiedPackage.ModifiedClass";
 102  1 Classfile oldClass = getOldJar().getClassfile(className);
 103  1 Classfile newClass = getNewJar().getClassfile(className);
 104   
 105  1 ClassDifferences classDifferences = (ClassDifferences) factory.createClassDifferences(className, oldClass, newClass);
 106   
 107  1 ConstructorDifferences constructorDifferences = null;
 108  1 for (Differences differences : classDifferences.getFeatureDifferences()) {
 109  35 if (differences.getName().equals(className + ".ModifiedClass(float)")) {
 110  1 constructorDifferences = (ConstructorDifferences) differences;
 111    }
 112    }
 113   
 114  1 assertTrue(constructorDifferences.isCodeDifference());
 115    }
 116   
 117  1 public void testMethodDifference() {
 118  1 String className = "ModifiedPackage.ModifiedClass";
 119  1 Classfile oldClass = getOldJar().getClassfile(className);
 120  1 Classfile newClass = getNewJar().getClassfile(className);
 121   
 122  1 ClassDifferences classDifferences = (ClassDifferences) factory.createClassDifferences(className, oldClass, newClass);
 123   
 124  1 MethodDifferences methodDifferences = null;
 125  1 for (Differences differences : classDifferences.getFeatureDifferences()) {
 126  35 if (differences.getName().equals(className + ".modifiedMethod()")) {
 127  1 methodDifferences = (MethodDifferences) differences;
 128    }
 129    }
 130   
 131  1 assertTrue(methodDifferences.isCodeDifference());
 132    }
 133   
 134  1 public void testMethodCodeDifference() {
 135  1 String className = "ModifiedPackage.ModifiedClass";
 136  1 Classfile oldClass = getOldJar().getClassfile(className);
 137  1 Classfile newClass = getNewJar().getClassfile(className);
 138   
 139  1 ClassDifferences classDifferences = (ClassDifferences) factory.createClassDifferences(className, oldClass, newClass);
 140   
 141  1 MethodDifferences methodDifferences = null;
 142  1 for (Differences differences : classDifferences.getFeatureDifferences()) {
 143  35 if (differences.getName().equals(className + ".modifiedCodeMethod()")) {
 144  1 methodDifferences = (MethodDifferences) differences;
 145    }
 146    }
 147   
 148  1 assertTrue(methodDifferences.isCodeDifference());
 149    }
 150    }