diff options
author | chibash <chiba@javassist.org> | 2018-09-02 22:56:45 +0900 |
---|---|---|
committer | chibash <chiba@javassist.org> | 2018-09-02 22:56:45 +0900 |
commit | c52b9c7100412288eecf2ed098c63a0ba1643000 (patch) | |
tree | 0fa3a3e32fb327059f269bd6d6271957bcf70142 /src/test/javassist/JvstTest5.java | |
parent | 808dfb862f2967534e9250060b895eb0c8762cb9 (diff) | |
download | javassist-c52b9c7100412288eecf2ed098c63a0ba1643000.tar.gz javassist-c52b9c7100412288eecf2ed098c63a0ba1643000.zip |
modifies NestHostAttribute and NestMembersAttribute and adds test code
Diffstat (limited to 'src/test/javassist/JvstTest5.java')
-rw-r--r-- | src/test/javassist/JvstTest5.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/javassist/JvstTest5.java b/src/test/javassist/JvstTest5.java index 6f6eb075..b0cbbcca 100644 --- a/src/test/javassist/JvstTest5.java +++ b/src/test/javassist/JvstTest5.java @@ -9,6 +9,8 @@ import javassist.bytecode.AttributeInfo; import javassist.bytecode.ClassFile; import javassist.bytecode.ConstPool; import javassist.bytecode.InnerClassesAttribute; +import javassist.bytecode.NestHostAttribute; +import javassist.bytecode.NestMembersAttribute; import javassist.expr.ExprEditor; import javassist.expr.Handler; import javassist.expr.MethodCall; @@ -416,4 +418,26 @@ public class JvstTest5 extends JvstTestRoot { Object obj = make(cc.getName()); assertEquals(1, invoke(obj, "test")); } + + public void testNestHostAttribute() throws Exception { + CtClass cc = sloader.get("test5.NestHost$Foo"); + ClassFile cf = cc.getClassFile(); + NestHostAttribute attr = (NestHostAttribute)cf.getAttribute(NestHostAttribute.tag); + assertEquals(test5.NestHost.class.getName(), + cf.getConstPool().getClassInfo(attr.hostClassIndex())); + } + + public void testNestMembersAttribute() throws Exception { + CtClass cc = sloader.get("test5.NestHost"); + ClassFile cf = cc.getClassFile(); + NestMembersAttribute attr = (NestMembersAttribute)cf.getAttribute(NestMembersAttribute.tag); + assertEquals(2, attr.numberOfClasses()); + String[] names = new String[2]; + for (int i = 0; i < 2; i++) + names[i] = cf.getConstPool().getClassInfo(attr.memberClass(i)); + + assertFalse(names[0].equals(names[1])); + assertTrue(names[0].equals("test5.NestHost$Foo") || names[0].equals("test5.NestHost$Bar")); + assertTrue(names[1].equals("test5.NestHost$Foo") || names[1].equals("test5.NestHost$Bar")); + } } |