1 package org.objectweb.asm; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.lang.reflect.Method; 6 import java.util.Arrays; 7 8 import junit.framework.TestCase; 9 10 public class UnitTest extends TestCase { 11 12 public void testReader() throws IOException { 13 try { 14 new ClassReader((InputStream) null); 15 fail(); 16 } catch (IOException e) { 17 } 18 19 ClassReader cr = new ClassReader(getClass().getName()); 20 int item = cr.getItem(1); 21 assertTrue(item >= 10); 22 assertTrue(item < cr.header); 23 } 24 25 public void testWriter() { 26 ClassWriter cw = new ClassWriter(false); 27 cw.newConst(new Byte((byte) 0)); 28 cw.newConst(new Character('0')); 29 cw.newConst(new Short((short) 0)); 30 cw.newConst(new Boolean(false)); 31 try { 32 cw.newConst(new Object()); 33 fail(); 34 } catch (RuntimeException e) { 35 } 36 cw.newMethod("A", "m", "()V", false); 37 } 38 39 public void testLabel() { 40 new Label().toString(); 41 try { 42 new Label().getOffset(); 43 fail(); 44 } catch (RuntimeException e) { 45 } 46 } 47 48 public void testType() { 49 assertEquals(Type.getType(Integer.TYPE), Type.INT_TYPE); 50 assertEquals(Type.getType(Void.TYPE), Type.VOID_TYPE); 51 assertEquals(Type.getType(Boolean.TYPE), Type.BOOLEAN_TYPE); 52 assertEquals(Type.getType(Byte.TYPE), Type.BYTE_TYPE); 53 assertEquals(Type.getType(Character.TYPE), Type.CHAR_TYPE); 54 assertEquals(Type.getType(Short.TYPE), Type.SHORT_TYPE); 55 assertEquals(Type.getType(Double.TYPE), Type.DOUBLE_TYPE); 56 assertEquals(Type.getType(Float.TYPE), Type.FLOAT_TYPE); 57 assertEquals(Type.getType(Long.TYPE), Type.LONG_TYPE); 58 String s1 = Type.getType(UnitTest.class).getInternalName(); 59 String s2 = Type.getInternalName(UnitTest.class); 60 assertEquals(s1, s2); 61 for (int i = 0; i < Arrays.class.getMethods().length; ++i) { 62 Method m = Arrays.class.getMethods()[i]; 63 Type[] args = Type.getArgumentTypes(m); 64 Type r = Type.getReturnType(m); 65 String d1 = Type.getMethodDescriptor(r, args); 66 String d2 = Type.getMethodDescriptor(m); 67 assertEquals(d1, d2); 68 } 69 Type.INT_TYPE.hashCode(); 70 } 71 } 72