tests/libjava-mauve/src/gnu/testlet/java/lang/Class/reflect2.java
branchjk_new_structure
changeset 1541 75c2e24dea9a
parent 1540 92ac284961c1
child 1542 be11db817bcf
equal deleted inserted replaced
1540:92ac284961c1 1541:75c2e24dea9a
     1 // Tags: JDK1.1
       
     2 // Uses: rf_help rf2_help
       
     3 
       
     4 // Copyright (C) 2002 Stephen Crawley <crawley@dstc.edu.au>
       
     5 
       
     6 // This file is part of Mauve.
       
     7 
       
     8 // Mauve is free software; you can redistribute it and/or modify
       
     9 // it under the terms of the GNU General Public License as published by
       
    10 // the Free Software Foundation; either version 2, or (at your option)
       
    11 // any later version.
       
    12 
       
    13 // Mauve is distributed in the hope that it will be useful,
       
    14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       
    16 // GNU General Public License for more details.
       
    17 
       
    18 // You should have received a copy of the GNU General Public License
       
    19 // along with Mauve; see the file COPYING.  If not, write to
       
    20 // the Free Software Foundation, 59 Temple Place - Suite 330,
       
    21 // Boston, MA 02111-1307, USA.  */
       
    22 
       
    23 package gnu.testlet.java.lang.Class;
       
    24 
       
    25 import gnu.testlet.Testlet;
       
    26 import gnu.testlet.TestHarness;
       
    27 
       
    28 public class reflect2 implements Testlet
       
    29 {
       
    30   private TestHarness harness;
       
    31   private Class help;
       
    32   private Class help2;
       
    33   private Class help_inner;
       
    34   private Class help2_inner;
       
    35   private Class help2_inner_inner;
       
    36 
       
    37   public Class getClass(String name)
       
    38   {
       
    39     try {
       
    40       return Class.forName(name);
       
    41     }
       
    42     catch (Throwable ex) {
       
    43       ex.printStackTrace();
       
    44       return null;
       
    45     }
       
    46   }
       
    47 
       
    48   public void test_getClasses() 
       
    49   {
       
    50     harness.checkPoint("getClasses");
       
    51 
       
    52     Class[] inner = (new Object()).getClass().getClasses();
       
    53     harness.check(inner.length == 0);
       
    54 
       
    55     inner = help.getClasses();
       
    56     harness.check(inner.length == 1 && inner[0].equals(help_inner));
       
    57 
       
    58     inner = help2.getClasses();
       
    59     harness.check(inner.length == 3);
       
    60 
       
    61     inner = help_inner.getClasses();
       
    62     harness.check(inner.length == 0);
       
    63 
       
    64     inner = help2_inner.getClasses();
       
    65     harness.check(inner.length == 1 && inner[0].equals(help2_inner_inner));
       
    66 
       
    67     inner = help2_inner_inner.getClasses();
       
    68     harness.check(inner.length == 0);
       
    69 
       
    70   } 
       
    71 
       
    72   public void test_getDeclaringClass() 
       
    73   {
       
    74     harness.checkPoint("getDeclaringClass");
       
    75 
       
    76     Class outer = help.getDeclaringClass();
       
    77     harness.check(outer == null);
       
    78 
       
    79     outer = help2.getDeclaringClass();
       
    80     harness.check(outer == null);
       
    81 
       
    82     outer = help_inner.getDeclaringClass();
       
    83     harness.check(outer != null && outer.equals(help));
       
    84 
       
    85     outer = help2_inner.getDeclaringClass();
       
    86     harness.check(outer != null && outer.equals(help2));
       
    87 
       
    88     outer = help2_inner_inner.getDeclaringClass();
       
    89     harness.check(outer != null && outer.equals(help2_inner));
       
    90   }
       
    91 
       
    92   public void test_getDeclaredClasses() 
       
    93   {
       
    94     harness.checkPoint("getDeclaredClasses");
       
    95 
       
    96     Class[] inner = help.getDeclaredClasses();
       
    97     harness.check(inner.length == 1 && inner[0].equals(help_inner));    
       
    98 
       
    99     inner = help2.getDeclaredClasses();
       
   100     harness.check(inner.length == 8);
       
   101     
       
   102     inner = help2_inner.getDeclaredClasses();
       
   103     harness.check(inner.length == 1 && inner[0].equals(help2_inner_inner));
       
   104 
       
   105     inner = help2_inner_inner.getDeclaredClasses();
       
   106     harness.check(inner.length == 0);
       
   107   }
       
   108 
       
   109   public void test(TestHarness harness)
       
   110   {
       
   111     this.harness = harness;
       
   112     help = getClass("gnu.testlet.java.lang.Class.rf_help");
       
   113     help2 = getClass("gnu.testlet.java.lang.Class.rf2_help");
       
   114 
       
   115     help_inner = getClass("gnu.testlet.java.lang.Class.rf_help$inner");
       
   116     help2_inner = getClass("gnu.testlet.java.lang.Class.rf2_help$inner_class_1");
       
   117     help2_inner_inner = getClass("gnu.testlet.java.lang.Class."
       
   118 		           + "rf2_help$inner_class_1$inner_inner_class_1");
       
   119 
       
   120     test_getClasses();
       
   121     test_getDeclaringClass();
       
   122     test_getDeclaredClasses();
       
   123   }
       
   124 }