AsmApiTest.java
package net.sf.cglib.core;
import org.junit.Test;
import org.objectweb.asm.Opcodes;
import static org.junit.Assert.*;
public class AsmApiTest {
    @Test
    public void testValue() {
        assertEquals(Opcodes.ASM7, AsmApi.value());
    }
    /**
     * With the release of ASM 7.0 beta, Opcodes.ASM7_EXPERIMENTAL
     * has been replaced by Opcodes.ASM7 so we simply ignore
     * the system property and default to the newest stable
     * version.
     */
    @Test
    public void testValueWithAsm7Experimental() {
        int asmApi = setAsm7ExperimentalAndGetValue("true");
        assertEquals(Opcodes.ASM7, asmApi);
        asmApi = setAsm7ExperimentalAndGetValue("");
        assertEquals(Opcodes.ASM7, asmApi);
        asmApi = setAsm7ExperimentalAndGetValue("false");
        assertEquals(Opcodes.ASM7, asmApi);
    }
    private int setAsm7ExperimentalAndGetValue(String value) {
        String propName = "net.sf.cglib.experimental_asm7";
        System.setProperty(propName, value);
        try {
            return AsmApi.value();
        } finally {
            System.clearProperty(propName);
        }
    }
}