AccessibleObjectTest.java revision 89c1feb0a69a7707b271086e749975b3f7acacf7
1/*
2 *  Licensed to the Apache Software Foundation (ASF) under one or more
3 *  contributor license agreements.  See the NOTICE file distributed with
4 *  this work for additional information regarding copyright ownership.
5 *  The ASF licenses this file to You under the Apache License, Version 2.0
6 *  (the "License"); you may not use this file except in compliance with
7 *  the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *  Unless required by applicable law or agreed to in writing, software
12 *  distributed under the License is distributed on an "AS IS" BASIS,
13 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *  See the License for the specific language governing permissions and
15 *  limitations under the License.
16 */
17
18package tests.api.java.lang.reflect;
19
20import dalvik.annotation.TestInfo;
21import dalvik.annotation.TestLevel;
22import dalvik.annotation.TestTarget;
23import dalvik.annotation.TestTargetClass;
24
25import java.lang.reflect.AccessibleObject;
26
27@TestTargetClass(AccessibleObject.class)
28public class AccessibleObjectTest extends junit.framework.TestCase {
29
30    public class TestClass {
31        public Object aField;
32    }
33
34    /**
35     * @tests java.lang.reflect.AccessibleObject#isAccessible()
36     */
37    @TestInfo(
38      level = TestLevel.COMPLETE,
39      purpose = "",
40      targets = {
41        @TestTarget(
42          methodName = "isAccessible",
43          methodArgs = {}
44        )
45    })
46    public void test_isAccessible() {
47        // Test for method boolean
48        // java.lang.reflect.AccessibleObject.isAccessible()
49        try {
50            AccessibleObject ao = TestClass.class.getField("aField");
51            ao.setAccessible(true);
52            assertTrue("Returned false to isAccessible", ao.isAccessible());
53            ao.setAccessible(false);
54            assertTrue("Returned true to isAccessible", !ao.isAccessible());
55        } catch (Exception e) {
56            fail("Exception during test : " + e.getMessage());
57        }
58    }
59
60    /**
61     * @tests java.lang.reflect.AccessibleObject#setAccessible(java.lang.reflect.AccessibleObject[],
62     *        boolean)
63     */
64    @TestInfo(
65      level = TestLevel.PARTIAL,
66      purpose = "Doesn't verify SecurityException.",
67      targets = {
68        @TestTarget(
69          methodName = "setAccessible",
70          methodArgs = {java.lang.reflect.AccessibleObject[].class, boolean.class}
71        )
72    })
73    public void test_setAccessible$Ljava_lang_reflect_AccessibleObjectZ() {
74        // Test for method void
75        // java.lang.reflect.AccessibleObject.setAccessible(java.lang.reflect.AccessibleObject
76        // [], boolean)
77        try {
78            AccessibleObject ao = TestClass.class.getField("aField");
79            AccessibleObject[] aoa = new AccessibleObject[] { ao };
80            AccessibleObject.setAccessible(aoa, true);
81            assertTrue("Returned false to isAccessible", ao.isAccessible());
82            AccessibleObject.setAccessible(aoa, false);
83            assertTrue("Returned true to isAccessible", !ao.isAccessible());
84        } catch (Exception e) {
85            fail("Exception during test : " + e.getMessage());
86        }
87    }
88
89    /**
90     * @tests java.lang.reflect.AccessibleObject#setAccessible(boolean)
91     */
92    @TestInfo(
93      level = TestLevel.TODO,
94      purpose = "Empty test, setAccessible(boolean) method is not " +
95            "verified.",
96      targets = {
97        @TestTarget(
98          methodName = "setAccessible",
99          methodArgs = {boolean.class}
100        )
101    })
102    public void test_setAccessibleZ() {
103        // Test for method void
104        // java.lang.reflect.AccessibleObject.setAccessible(boolean)
105        assertTrue("Used to test", true);
106    }
107
108    /**
109     * Sets up the fixture, for example, open a network connection. This method
110     * is called before a test is executed.
111     */
112    protected void setUp() {
113    }
114
115    /**
116     * Tears down the fixture, for example, close a network connection. This
117     * method is called after a test is executed.
118     */
119    protected void tearDown() {
120    }
121}
122