Skip to content

Commit e5e9cab

Browse files
committed
Add test for jreflect constructors
1 parent 5c06747 commit e5e9cab

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

tests/test_introspect.py

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,46 @@ def test_jreflect_fields(self):
3939
BitSet = scyjava.jimport(str_BitSet)
4040
str_Obj = scyjava.jreflect(str_BitSet, "fields")
4141
bitset_Obj = scyjava.jreflect(BitSet, "fields")
42-
assert len(str_Obj) == 0
43-
assert len(bitset_Obj) == 0
42+
assert len(str_Obj) == len(bitset_Obj) == 0
4443
assert bitset_Obj is not None
4544
assert bitset_Obj == str_Obj
4645

46+
def test_jreflect_ctors(self):
47+
if mode == Mode.JEP:
48+
# JEP does not support the jclass function.
49+
return
50+
str_ArrayList = "java.util.ArrayList"
51+
ArrayList = scyjava.jimport(str_ArrayList)
52+
str_Obj = scyjava.jreflect(str_ArrayList, "constructors")
53+
arraylist_Obj = scyjava.jreflect(ArrayList, "constructors")
54+
assert len(str_Obj) == len(arraylist_Obj) == 3
55+
arraylist_Obj.sort(
56+
key=lambda row: f"{row['type']}:{row['name']}:{','.join(str(row['arguments']))}"
57+
)
58+
assert arraylist_Obj == [
59+
{
60+
"arguments": ["int"],
61+
"mods": ["public"],
62+
"name": "java.util.ArrayList",
63+
"returns": "java.util.ArrayList",
64+
"type": "constructor",
65+
},
66+
{
67+
"arguments": ["java.util.Collection"],
68+
"mods": ["public"],
69+
"name": "java.util.ArrayList",
70+
"returns": "java.util.ArrayList",
71+
"type": "constructor",
72+
},
73+
{
74+
"arguments": [],
75+
"mods": ["public"],
76+
"name": "java.util.ArrayList",
77+
"returns": "java.util.ArrayList",
78+
"type": "constructor",
79+
},
80+
]
81+
4782
def test_jsource(self):
4883
if mode == Mode.JEP:
4984
# JEP does not support the jclass function.

0 commit comments

Comments
 (0)