Coverage Report - com.jeantessier.classreader.TestPackageMapper
 
Classes in this File Line Coverage Branch Coverage Complexity
TestPackageMapper
100%
64/64
N/A
1
 
 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.classreader;
 34  
 
 35  
 import java.io.*;
 36  
 import java.util.*;
 37  
 
 38  
 import junit.framework.*;
 39  
 
 40  10
 public class TestPackageMapper extends TestCase {
 41  1
     private static final String TEST_CLASSPATH = "tests" + File.separator + "JarJarDiff" + File.separator + "old";
 42  
     private static final String TEST_PACKAGENAME1 = "ModifiedPackage";
 43  1
     private static final String TEST_FILENAME1  = TEST_CLASSPATH + File.separator + TEST_PACKAGENAME1 + File.separator + "ModifiedClass.class";
 44  
     private static final String TEST_CLASSNAME1 = TEST_PACKAGENAME1 + ".ModifiedClass";
 45  1
     private static final String TEST_FILENAME2 = TEST_CLASSPATH + File.separator + TEST_PACKAGENAME1 + File.separator + "ModifiedInterface.class";
 46  
     private static final String TEST_CLASSNAME2 = TEST_PACKAGENAME1 + ".ModifiedInterface";
 47  
     private static final String TEST_PACKAGENAME3 = "UnmodifiedPackage";
 48  1
     private static final String TEST_FILENAME3 = TEST_CLASSPATH + File.separator + TEST_PACKAGENAME3 + File.separator + "UnmodifiedClass.class";
 49  
     private static final String TEST_CLASSNAME3 = TEST_PACKAGENAME3 + ".UnmodifiedClass";
 50  
 
 51  
     private PackageMapper mapper;
 52  
 
 53  
     private ClassfileLoader loader;
 54  
 
 55  
     protected void setUp() throws Exception {
 56  10
         super.setUp();
 57  
 
 58  10
         mapper = new PackageMapper();
 59  
 
 60  10
         loader = new AggregatingClassfileLoader();
 61  10
         Collection<String> filenames = new ArrayList<String>();
 62  10
         filenames.add(TEST_FILENAME1);
 63  10
         filenames.add(TEST_FILENAME2);
 64  10
         filenames.add(TEST_FILENAME3);
 65  10
         loader.load(filenames);
 66  10
     }
 67  
 
 68  
     public void testBeginSession() {
 69  1
         mapper.beginSession(new LoadEvent(loader, null, null, null));
 70  
 
 71  1
         assertEquals("Nb package names", 0, mapper.getPackageNames().size());
 72  1
     }
 73  
 
 74  
     public void testBeginGroup() {
 75  1
         mapper.beginGroup(new LoadEvent(loader, TEST_CLASSPATH, null, null));
 76  
 
 77  1
         assertEquals("Nb package names", 0, mapper.getPackageNames().size());
 78  1
     }
 79  
 
 80  
     public void testBeginFile() {
 81  1
         mapper.beginFile(new LoadEvent(loader, TEST_CLASSPATH, TEST_FILENAME1, null));
 82  
 
 83  1
         assertEquals("Nb package names", 0, mapper.getPackageNames().size());
 84  1
     }
 85  
 
 86  
     public void testBeginClassfile() {
 87  1
         mapper.beginClassfile(new LoadEvent(loader, TEST_CLASSPATH, TEST_FILENAME1, null));
 88  
 
 89  1
         assertEquals("Nb package names", 0, mapper.getPackageNames().size());
 90  1
     }
 91  
 
 92  
     public void testOneClassfile() {
 93  1
         Classfile classfile = loader.getClassfile(TEST_CLASSNAME1);
 94  
 
 95  1
         mapper.endClassfile(new LoadEvent(loader, TEST_CLASSPATH, TEST_FILENAME1, classfile));
 96  
 
 97  1
         assertEquals("Nb package names", 1, mapper.getPackageNames().size());
 98  1
         assertTrue(TEST_PACKAGENAME1 + " not in " + mapper.getPackageNames(), mapper.getPackageNames().contains(TEST_PACKAGENAME1));
 99  1
         assertEquals("Nb classes in " + TEST_PACKAGENAME1, 1, mapper.getPackage(TEST_PACKAGENAME1).size());
 100  1
         assertSame(TEST_CLASSNAME1, classfile, mapper.getPackage(TEST_PACKAGENAME1).get(TEST_CLASSNAME1));
 101  1
     }
 102  
 
 103  
     public void testTwoClassfilesInSamePackages() {
 104  1
         Classfile classfile1 = loader.getClassfile(TEST_CLASSNAME1);
 105  1
         Classfile classfile2 = loader.getClassfile(TEST_CLASSNAME2);
 106  
 
 107  1
         mapper.endClassfile(new LoadEvent(loader, TEST_CLASSPATH, TEST_FILENAME1, classfile1));
 108  1
         mapper.endClassfile(new LoadEvent(loader, TEST_CLASSPATH, TEST_FILENAME2, classfile2));
 109  
 
 110  1
         assertEquals("Nb package names", 1, mapper.getPackageNames().size());
 111  1
         assertTrue(TEST_PACKAGENAME1, mapper.getPackageNames().contains(TEST_PACKAGENAME1));
 112  1
         assertEquals("Nb classes in " + TEST_PACKAGENAME1, 2, mapper.getPackage(TEST_PACKAGENAME1).size());
 113  1
         assertSame(TEST_CLASSNAME1, classfile1, mapper.getPackage(TEST_PACKAGENAME1).get(TEST_CLASSNAME1));
 114  1
         assertSame(TEST_CLASSNAME2, classfile2, mapper.getPackage(TEST_PACKAGENAME1).get(TEST_CLASSNAME2));
 115  1
     }
 116  
 
 117  
     public void testTwoClassfilesInDifferentPackages() {
 118  1
         Classfile classfile1 = loader.getClassfile(TEST_CLASSNAME1);
 119  1
         Classfile classfile3 = loader.getClassfile(TEST_CLASSNAME3);
 120  
 
 121  1
         mapper.endClassfile(new LoadEvent(loader, TEST_CLASSPATH, TEST_FILENAME1, classfile1));
 122  1
         mapper.endClassfile(new LoadEvent(loader, TEST_CLASSPATH, TEST_FILENAME3, classfile3));
 123  
 
 124  1
         assertEquals("Nb package names", 2, mapper.getPackageNames().size());
 125  1
         assertTrue(TEST_PACKAGENAME1, mapper.getPackageNames().contains(TEST_PACKAGENAME1));
 126  1
         assertTrue(TEST_PACKAGENAME3, mapper.getPackageNames().contains(TEST_PACKAGENAME3));
 127  1
         assertEquals("Nb classes in " + TEST_PACKAGENAME1, 1, mapper.getPackage(TEST_PACKAGENAME1).size());
 128  1
         assertSame(TEST_CLASSNAME1, classfile1, mapper.getPackage(TEST_PACKAGENAME1).get(TEST_CLASSNAME1));
 129  1
         assertEquals("Nb classes in " + TEST_PACKAGENAME3, 1, mapper.getPackage(TEST_PACKAGENAME3).size());
 130  1
         assertSame(TEST_CLASSNAME3, classfile3, mapper.getPackage(TEST_PACKAGENAME3).get(TEST_CLASSNAME3));
 131  1
     }
 132  
 
 133  
     public void testEndFile() {
 134  1
         mapper.endFile(new LoadEvent(loader, TEST_CLASSPATH, TEST_FILENAME1, null));
 135  
 
 136  1
         assertEquals("Nb package names", 0, mapper.getPackageNames().size());
 137  1
     }
 138  
 
 139  
     public void testEndGroup() {
 140  1
         mapper.endGroup(new LoadEvent(loader, TEST_CLASSPATH, null, null));
 141  
 
 142  1
         assertEquals("Nb package names", 0, mapper.getPackageNames().size());
 143  1
     }
 144  
 
 145  
     public void testSession() {
 146  1
         mapper.endSession(new LoadEvent(loader, null, null, null));
 147  
 
 148  1
         assertEquals("Nb package names", 0, mapper.getPackageNames().size());
 149  1
     }
 150  
 }