001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.commons.beanutils.bugs;
018:
019: import org.apache.commons.beanutils.PropertyUtils;
020: import org.apache.commons.beanutils.bugs.other.Jira87BeanFactory;
021: import org.apache.commons.logging.Log;
022: import org.apache.commons.logging.LogFactory;
023: import junit.framework.Test;
024: import junit.framework.TestCase;
025: import junit.framework.TestSuite;
026:
027: /**
028: * Test case for Jiar issue# BEANUTILS-87.
029: * <p />
030: * See https://issues.apache.org/jira/browse/BEANUTILS-87
031: * <p />
032: * In BeanUtils 1.7.0 a "package friendly" implementation
033: * of a public interface with defined a "mapped property"
034: * caused an {@link IllegalAccessException} to be thrown by
035: * PropertyUtils's getMappedProperty method.
036: * <p />
037: * This test case demonstrates the issue.
038: *
039: * @version $Revision: 541308 $ $Date: 2007-05-24 15:31:50 +0100 (Thu, 24 May 2007) $
040: */
041: public class Jira87TestCase extends TestCase {
042:
043: private Log log = LogFactory.getLog(Jira87TestCase.class);
044:
045: /**
046: * Create a test case with the specified name.
047: *
048: * @param name The name of the test
049: */
050: public Jira87TestCase(String name) {
051: super (name);
052: }
053:
054: /**
055: * Run the Test.
056: *
057: * @param args Arguments
058: */
059: public static void main(String[] args) {
060: junit.textui.TestRunner.run(suite());
061: }
062:
063: /**
064: * Create a test suite for this test.
065: *
066: * @return a test suite
067: */
068: public static Test suite() {
069: return (new TestSuite(Jira87TestCase.class));
070: }
071:
072: /**
073: * Set up.
074: *
075: * @throws java.lang.Exception
076: */
077: protected void setUp() throws Exception {
078: super .setUp();
079: }
080:
081: /**
082: * Tear Down.
083: *
084: * @throws java.lang.Exception
085: */
086: protected void tearDown() throws Exception {
087: super .tearDown();
088: }
089:
090: /**
091: * Interface definition with a mapped property
092: */
093: public void testJira87() {
094:
095: Jira87BeanFactory.PublicMappedInterface bean = Jira87BeanFactory
096: .createMappedPropertyBean();
097: try {
098: // N.B. The test impl. returns the key value
099: assertEquals("foo", PropertyUtils.getMappedProperty(bean,
100: "value(foo)"));
101: } catch (Throwable t) {
102: log.error("ERROR " + t, t);
103: fail("Threw exception: " + t);
104: }
105: }
106: }
|