/** * This test checks if {@link INameEnvironment#findType(char[], char[][])} is executed. * INameEnvironment has no option to avoid the search for secondary types, therefore the search * for secondary types is executed (when available). */ public void test03() { NameEnvironmentDummy nameEnv = new NameEnvironmentDummy(false); LookupEnvironment lookupEnv = new LookupEnvironment(null, new CompilerOptions(), null, nameEnv); PackageBinding packageBinding = lookupEnv.createPackage( new char[][] { "org/eclipse/jdt".toCharArray(), "org/eclipse/jdt/internal".toCharArray() }); assertNotNull(packageBinding); assertTrue( nameEnv .isTypeSearchExecuted); // the method findType(char[], char[][]) should got executed // (without an option to avoid the search for secondary types) }
/** * This test checks if types are searched on creating a package, but without the search for * secondary types. It isn't necessary to search for secondary types when creating a package, * because a package name can not collide with a secondary type. The search for secondary types * should not get executed, because the search for secondary types is very expensive regarding * performance (all classes of a package have to get loaded, parsed and analyzed). */ public void test04() { NameEnvironmentWithProgressDummy nameEnvWithProgress = new NameEnvironmentWithProgressDummy(); LookupEnvironment lookupEnv = new LookupEnvironment(null, new CompilerOptions(), null, nameEnvWithProgress); PackageBinding packageBinding = lookupEnv.createPackage( new char[][] { "org/eclipse/jdt".toCharArray(), "org/eclipse/jdt/internal".toCharArray() }); assertNotNull(packageBinding); assertTrue( nameEnvWithProgress .isTypeSearchExecutedWithSearchWithSecondaryTypes); // the method findType(char[], // char[][], boolean) should got // executed ... assertFalse( nameEnvWithProgress .isTypeSearchWithSearchWithSecondaryTypes); // ... but without the search for secondary // types }