Author: amitman...@google.com
Date: Thu Jan 15 15:27:04 2009
New Revision: 4482

Modified:
     
releases/1.6/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java

Log:
Minor re-factoring. Sort & format

Patch by: amitmanjhi



Modified:  
releases/1.6/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java
==============================================================================
---  
releases/1.6/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java
        
(original)
+++  
releases/1.6/tools/api-checker/test/com/google/gwt/tools/apichecker/ApiContainerTest.java
        
Thu Jan 15 15:27:04 2009
@@ -91,18 +91,6 @@
      return sb.toString();
    }

-  private static String getSourceForNewObject() {
-    StringBuffer sb = new StringBuffer();
-    sb.append("package java.lang;\n");
-    sb.append("public class Object {\n");
-    sb.append("\tpublic static class Foo extends Object{\n");
-    sb.append("\t}\n");
-    sb.append("}\n");
-    sb.append("class Temp {\n");
-    sb.append("}");
-    return sb.toString();
-  }
-
    private static String getSourceForNonApiClass() {
      StringBuffer sb = new StringBuffer();
      sb.append("package test.apicontainer;\n");
@@ -163,7 +151,7 @@
    }

    ApiContainer apiCheck = null;
-  ApiContainer apiCheckLoop = null;
+  AbstractTreeLogger logger = new PrintWriterTreeLogger();

    /**
     * Class hierarchy. public java.lang.Object --  
test.apicontainer.NonApiClass
@@ -172,24 +160,43 @@
     */
    @Override
    public void setUp() throws UnableToCompleteException {
-    AbstractTreeLogger logger = new PrintWriterTreeLogger();
      logger.setMaxDetail(com.google.gwt.core.ext.TreeLogger.ERROR);
-    apiCheckLoop = new ApiContainer(
-        "ApiClassTest",
-        new HashSet<CompilationUnit>(
-            Arrays.asList(new StaticCompilationUnit[] {new  
StaticCompilationUnit(
-                "java.lang.Object", getSourceForNewObject()),})),
-        new HashSet<String>(), logger);
+
      apiCheck = new ApiContainer("ApiContainerTest",
          new HashSet<CompilationUnit>(Arrays.asList(getScuArray())),
          new HashSet<String>(), logger);
    }

+  /*
+   * Test if ApiContainer correctly creates an ApiContainer (for example,  
avoids
+   * an infinite loop) when a nested class extends an outer class.
+   */
+  public void testApiContainerLoop() throws UnableToCompleteException {
+    StringBuffer sb = new StringBuffer();
+    sb.append("package java.lang;\n");
+    sb.append("public class Object {\n");
+    sb.append("\tpublic static class Foo extends Object{\n");
+    sb.append("\t}\n");
+    sb.append("}\n");
+    sb.append("class Temp {\n");
+    sb.append("}");
+
+    ApiContainer apiCheckLoop = new ApiContainer(
+        "ApiClassTest",
+        new HashSet<CompilationUnit>(
+            Arrays.asList(new StaticCompilationUnit[] {new  
StaticCompilationUnit(
+                "java.lang.Object", sb.toString())})), new  
HashSet<String>(),
+        logger);
+    ApiPackage javaLangPackage = apiCheckLoop.getApiPackage("java.lang");
+    assertNotNull(javaLangPackage);
+    assertNotNull(javaLangPackage.getApiClass("java.lang.Object"));
+    assertEquals(2, javaLangPackage.getApiClassNames().size());
+  }
+
    public void testEverything() {
      checkApiClass();
      checkApiMembers();
      checkApiPackages();
-    checkInfiniteLoopInApiClass();
    }

    /**
@@ -270,12 +277,5 @@
      assertNotNull(apiCheck.getApiPackage("java.lang"));
      assertNotNull(apiCheck.getApiPackage("test.apicontainer"));
      assertEquals(3, apiCheck.getApiPackageNames().size());
-  }
-
-  void checkInfiniteLoopInApiClass() {
-    ApiPackage tempPackage = apiCheckLoop.getApiPackage("java.lang");
-    assertNotNull(tempPackage);
-    assertNotNull(tempPackage.getApiClass("java.lang.Object"));
-    assertEquals(2, tempPackage.getApiClassNames().size());
    }
  }

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to