1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.beanutils.bugs;
18
19 import org.apache.commons.beanutils.PropertyUtils;
20 import org.apache.commons.beanutils.bugs.other.Jira87BeanFactory;
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import junit.framework.Test;
24 import junit.framework.TestCase;
25 import junit.framework.TestSuite;
26
27 /***
28 * Test case for Jiar issue# BEANUTILS-87.
29 * <p />
30 * See https://issues.apache.org/jira/browse/BEANUTILS-87
31 * <p />
32 * In BeanUtils 1.7.0 a "package friendly" implementation
33 * of a public interface with defined a "mapped property"
34 * caused an {@link IllegalAccessException} to be thrown by
35 * PropertyUtils's getMappedProperty method.
36 * <p />
37 * This test case demonstrates the issue.
38 *
39 * @version $Revision: 541308 $ $Date: 2007-05-24 15:31:50 +0100 (Thu, 24 May 2007) $
40 */
41 public class Jira87TestCase extends TestCase {
42
43 private Log log = LogFactory.getLog(Jira87TestCase.class);
44
45 /***
46 * Create a test case with the specified name.
47 *
48 * @param name The name of the test
49 */
50 public Jira87TestCase(String name) {
51 super(name);
52 }
53
54 /***
55 * Run the Test.
56 *
57 * @param args Arguments
58 */
59 public static void main(String[] args) {
60 junit.textui.TestRunner.run(suite());
61 }
62
63 /***
64 * Create a test suite for this test.
65 *
66 * @return a test suite
67 */
68 public static Test suite() {
69 return (new TestSuite(Jira87TestCase.class));
70 }
71
72 /***
73 * Set up.
74 *
75 * @throws java.lang.Exception
76 */
77 protected void setUp() throws Exception {
78 super.setUp();
79 }
80
81 /***
82 * Tear Down.
83 *
84 * @throws java.lang.Exception
85 */
86 protected void tearDown() throws Exception {
87 super.tearDown();
88 }
89
90 /***
91 * Interface definition with a mapped property
92 */
93 public void testJira87() {
94
95 Jira87BeanFactory.PublicMappedInterface bean = Jira87BeanFactory.createMappedPropertyBean();
96 try {
97
98 assertEquals("foo", PropertyUtils.getMappedProperty(bean, "value(foo)"));
99 } catch (Throwable t) {
100 log.error("ERROR " + t, t);
101 fail("Threw exception: " + t);
102 }
103 }
104 }