View Javadoc
1   package org.apache.commons.beanutils2;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one or more
5    * contributor license agreements.  See the NOTICE file distributed with
6    * this work for additional information regarding copyright ownership.
7    * The ASF licenses this file to You under the Apache License, Version 2.0
8    * (the "License"); you may not use this file except in compliance with
9    * the License.  You may obtain a copy of the License at
10   *
11   *      http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing, software
14   * distributed under the License is distributed on an "AS IS" BASIS,
15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   * See the License for the specific language governing permissions and
17   * limitations under the License.
18   */
19  
20  import static org.apache.commons.beanutils2.BeanUtils.on;
21  import static org.junit.Assert.assertNotNull;
22  import static org.junit.Assert.assertSame;
23  
24  import org.junit.Before;
25  import org.junit.Test;
26  
27  public class CastTestCase
28  {
29  
30      private SuperClass superObj;
31  
32      private SubClass subObj;
33  
34      @Before
35      public void setUp()
36      {
37          superObj = new SuperClass();
38          subObj = new SubClass();
39      }
40  
41      @Test
42      public void castSameClass()
43      {
44          SuperClass casted = on( superObj ).cast();
45          assertNotNull( casted );
46          assertSame( superObj, casted );
47      }
48  
49      @Test
50      public void castCompatible()
51      {
52          SuperClass casted = on( subObj ).cast();
53          assertNotNull( casted );
54          assertSame( subObj, casted );
55      }
56  
57      @Test( expected = ClassCastException.class )
58      public void castIncompatible()
59      {
60          @SuppressWarnings( "unused" ) // need to assign to casted to force exception
61          SubClass casted = on( superObj ).cast();
62      }
63  
64      private static class SuperClass
65      {
66  
67      }
68  
69      private static class SubClass
70          extends SuperClass
71      {
72  
73      }
74  
75  }