1   /*
2    * Copyright (C) The MetaClass Group. All rights reserved.
3    *
4    * This software is published under the terms of the Spice
5    * Software License version 1.1, a copy of which has been included
6    * with this distribution in the LICENSE.txt file.
7    */
8   package org.codehaus.metaclass.introspector;
9   
10  import junit.framework.TestCase;
11  import org.codehaus.metaclass.model.ClassDescriptor;
12  import org.jmock.Mock;
13  import org.jmock.C;
14  import org.jmock.InvocationMatcher;
15  
16  /***
17   * @author Peter Donald
18   * @version $Revision: 1.3 $ $Date: 2003/12/09 07:51:26 $
19   */
20  public class WrapperMetaClassAccessorTestCase
21      extends TestCase
22  {
23      public void testNullAccessorPassedToCtor()
24          throws Exception
25      {
26          try
27          {
28              new WrapperMetaClassAccessor( null );
29          }
30          catch( final NullPointerException npe )
31          {
32              assertEquals( "npe.getMessage()", "accessor", npe.getMessage() );
33              return;
34          }
35          fail( "Expected to fail due to null Accessor passed into Ctor" );
36      }
37  
38      public void testWrapperMetaClassAccessor()
39          throws Exception
40      {
41          final Mock mock = new Mock( MetaClassAccessor.class );
42          final String classname = "X";
43          final ClassLoader classLoader = getClass().getClassLoader();
44          final InvocationMatcher matcher =
45              C.args( C.eq( classname ), C.eq( classLoader ), C.IS_NULL );
46          mock.expectAndReturn( "getClassDescriptor", matcher, null );
47  
48          final MetaClassAccessor accessor = (MetaClassAccessor)mock.proxy();
49  
50          final WrapperMetaClassAccessor wrapper = new WrapperMetaClassAccessor(
51              accessor );
52          final ClassDescriptor result =
53              wrapper.getClassDescriptor( classname, classLoader, null );
54          assertEquals( "result", null, result );
55  
56          mock.verify();
57      }
58  }