1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.lang3.builder;
18
19 import static org.junit.jupiter.api.Assertions.assertFalse;
20 import static org.junit.jupiter.api.Assertions.assertTrue;
21
22 import java.lang.reflect.Field;
23
24 import org.apache.commons.lang3.AbstractLangTest;
25 import org.junit.jupiter.api.Test;
26
27
28
29
30 class AbstractReflectionSetAccessibleTest extends AbstractLangTest {
31
32 @SuppressWarnings("unused")
33 private final String privateField = "value";
34
35 @Test
36 void setAccessibleHandlesNull() {
37 assertFalse(AbstractReflection.setAccessible(true, null));
38 assertFalse(AbstractReflection.setAccessible(false, null));
39 }
40
41 @Test
42 void setAccessibleRespectsForceFlag() throws Exception {
43 final Field field = getClass().getDeclaredField("privateField");
44 field.setAccessible(false);
45 assertFalse(field.isAccessible());
46 assertFalse(AbstractReflection.setAccessible(false, field));
47 assertFalse(field.isAccessible());
48 assertTrue(AbstractReflection.setAccessible(true, field));
49 assertTrue(field.isAccessible());
50 }
51
52 @Test
53 void setAccessibleReturnsTrueWhenAlreadyAccessible() throws Exception {
54 final Field field = getClass().getDeclaredField("privateField");
55 field.setAccessible(true);
56 assertTrue(field.isAccessible());
57 assertTrue(AbstractReflection.setAccessible(false, field));
58 assertTrue(AbstractReflection.setAccessible(true, field));
59 }
60 }