001 /*
002 * $Id: InheritedMethodsTest.java 1103095 2011-05-14 13:18:29Z simonetripodi $
003 * Licensed to the Apache Software Foundation (ASF) under one
004 * or more contributor license agreements. See the NOTICE file
005 * distributed with this work for additional information
006 * regarding copyright ownership. The ASF licenses this file
007 * to you under the Apache License, Version 2.0 (the
008 * "License"); you may not use this file except in compliance
009 * with the License. You may obtain a copy of the License at
010 *
011 * http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing,
014 * software distributed under the License is distributed on an
015 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016 * KIND, either express or implied. See the License for the
017 * specific language governing permissions and limitations
018 * under the License.
019 */
020 /**
021 *
022 */
023 package org.apache.commons.ognl.test;
024
025 import junit.framework.TestCase;
026 import org.apache.commons.ognl.Node;
027 import org.apache.commons.ognl.Ognl;
028 import org.apache.commons.ognl.OgnlContext;
029 import org.apache.commons.ognl.test.objects.BaseBean;
030 import org.apache.commons.ognl.test.objects.FirstBean;
031 import org.apache.commons.ognl.test.objects.Root;
032 import org.apache.commons.ognl.test.objects.SecondBean;
033
034 /**
035 * Tests functionality of casting inherited method expressions.
036 */
037 public class InheritedMethodsTest
038 extends TestCase
039 {
040
041 private static Root ROOT = new Root();
042
043 public void test_Base_Inheritance()
044 throws Exception
045 {
046 OgnlContext context = (OgnlContext) Ognl.createDefaultContext( null );
047 String expression = "map.bean.name";
048 BaseBean first = new FirstBean();
049 BaseBean second = new SecondBean();
050
051 ROOT.getMap().put( "bean", first );
052
053 Node node = Ognl.compileExpression( context, ROOT, expression );
054
055 assertEquals( first.getName(), node.getAccessor().get( context, ROOT ) );
056
057 ROOT.getMap().put( "bean", second );
058
059 assertEquals( second.getName(), node.getAccessor().get( context, ROOT ) );
060 }
061 }