001: package com.kirkk.analyzer.framework.bcelbundle.test;
002:
003: import junit.framework.*;
004: import java.io.*;
005: import com.kirkk.analyzer.framework.bcelbundle.*;
006: import com.kirkk.analyzer.framework.*;
007: import com.kirkk.analyzer.framework.JarCollection;
008: import java.util.*;
009:
010: public class TestJarRelationshipDecorator extends TestCase {
011: public void testOutgoingJarRelationships() throws Exception {
012: JarCollection jarCollection = new JarRelationshipDecorator(
013: new JarCollectionImpl(new File(
014: "testdata/acyclictestproject/dist"),
015: new ArrayList()));
016: assertEquals(jarCollection.getJarCount(), 2);
017: jarCollection.first();
018:
019: Jar jar1 = jarCollection.getJar("Test1.jar");
020: Jar jar2 = jarCollection.getJar("Test2.jar");
021: assertNotNull("Jar1 is null", jar1);
022: assertNotNull("Jar2 is null", jar2);
023:
024: List jar2OutgoingDependencies = jar2.getOutgoingDependencies();
025: List jar1OutgoingDependencis = jar1.getOutgoingDependencies();
026: assertTrue("jar2 should be dependent on jar1",
027: jar2OutgoingDependencies.contains(jar1));
028: assertTrue("jar1 should not be dependent on jar2",
029: !jar1OutgoingDependencis.contains(jar2));
030:
031: }
032:
033: public void testIncomingJarRelationships() throws Exception {
034: JarCollection jarCollection = new JarRelationshipDecorator(
035: new JarCollectionImpl(new File(
036: "testdata/acyclictestproject/dist"),
037: new ArrayList()));
038: assertEquals(jarCollection.getJarCount(), 2);
039: jarCollection.first();
040:
041: Jar jar1 = jarCollection.getJar("Test1.jar");
042: Jar jar2 = jarCollection.getJar("Test2.jar");
043: assertNotNull("Jar1 is null", jar1);
044: assertNotNull("Jar2 is null", jar2);
045:
046: List jar2IncomingDependencies = jar2.getIncomingDependencies();
047: List jar1IncomingDependencis = jar1.getIncomingDependencies();
048: assertTrue("jar2 should not have any incoming dependncies",
049: !jar2IncomingDependencies.contains(jar1));
050: assertTrue("jar1 should have jar2 as an incoming dependency",
051: jar1IncomingDependencis.contains(jar2));
052:
053: }
054:
055: public void testCylicJars() throws Exception {
056: JarCollection jarCollection = new JarRelationshipDecorator(
057: new JarCollectionImpl(new File(
058: "testdata/cyclictestproject/dist"),
059: new ArrayList()));
060: assertEquals(jarCollection.getJarCount(), 2);
061: jarCollection.first();
062:
063: Jar jar1 = jarCollection.getJar("Test1.jar");
064: Jar jar2 = jarCollection.getJar("Test2.jar");
065: assertNotNull("Jar1 is null", jar1);
066: assertNotNull("Jar2 is null", jar2);
067:
068: assertTrue("Jar1 should have a cycle", jar1.hasCycles());
069: assertTrue("Jar2 should have a cycle", jar2.hasCycles());
070:
071: List jar1Cycles = jar1.getCyclicJars();
072: assertTrue("Jar1 should have a cycle with Jar2", jar1Cycles
073: .contains(jar2));
074:
075: List jar2Cycles = jar2.getCyclicJars();
076: assertTrue("Jar2 should have a cycle with Jar1", jar2Cycles
077: .contains(jar1));
078: }
079:
080: public void testDecoratorToArray() throws Exception {
081: JarCollection jarCollection = new JarRelationshipDecorator(
082: new JarCollectionImpl(new File(
083: "testdata/acyclictestproject/dist")));
084: Jar[] jar = jarCollection.toArray();
085: assertEquals("Array size should be 2", 2, jar.length);
086:
087: assertTrue((jar[0].getJarFileName().equals("Test1.jar"))
088: || (jar[0].getJarFileName().equals("Test2.jar")));
089: }
090:
091: /*public void testDupPackageSpanningJars() throws Exception {
092: JarCollection jarCollection = new JarRelationshipDecorator(new JarCollectionImpl(new File("testdata/samepackagespansjars/dist")));
093:
094: Jar jar1 = jarCollection.getJar("Test1.jar");
095: Jar jar2 = jarCollection.getJar("Test2.jar");
096:
097: System.out.println(jar1.hasCycles());
098: System.out.println(jar2.hasCycles());
099: }*/
100: }
|