UnsupportedFeaturesTests.java
package org.mvel2.tests.core;
import org.mvel2.MVEL;
import org.mvel2.ParserContext;
import org.mvel2.optimizers.OptimizerFactory;
import org.mvel2.tests.BaseMvelTestCase;
/**
 * @author Mike Brock .
 */
public class UnsupportedFeaturesTests extends BaseMvelTestCase {
  public void testJavaStyleClassLiterals() {
    MVEL.COMPILER_OPT_SUPPORT_JAVA_STYLE_CLASS_LITERALS = true;
    OptimizerFactory.setDefaultOptimizer("ASM");
    assertEquals(String.class, MVEL.executeExpression(MVEL.compileExpression("String.class")));
    OptimizerFactory.setDefaultOptimizer("reflective");
    assertEquals(String.class, MVEL.executeExpression(MVEL.compileExpression("String.class")));
    OptimizerFactory.setDefaultOptimizer(OptimizerFactory.DYNAMIC);
    assertEquals(String.class, MVEL.eval("String"));
    assertEquals(String.class, MVEL.eval("java.lang.String"));
    assertEquals(java.util.ArrayList.class, MVEL.eval("java.util.ArrayList"));
    assertEquals(String.class, MVEL.eval("(String)"));
    assertEquals(String.class, MVEL.eval("(java.lang.String)"));
    assertEquals(java.util.ArrayList.class, MVEL.eval("(java.util.ArrayList)"));
    assertEquals(String.class, MVEL.eval("(String.class)"));
    assertEquals(String.class, MVEL.eval("(java.lang.String.class)"));
    assertEquals(java.util.ArrayList.class, MVEL.eval("(java.util.ArrayList.class)"));
    assertEquals(String.class, MVEL.eval("String.class"));
    assertEquals(String.class, MVEL.eval("java.lang.String.class"));
    assertEquals(java.util.ArrayList.class, MVEL.eval("java.util.ArrayList.class"));
    assertEquals(Class.class, MVEL.analyze("String", ParserContext.create()));
    assertEquals(Class.class, MVEL.analyze("String.class", ParserContext.create()));
    assertEquals(Class.class, MVEL.analyze("java.lang.String.class", ParserContext.create()));
    assertEquals(Class.class, MVEL.analyze("java.util.ArrayList.class", ParserContext.create()));
    MVEL.COMPILER_OPT_SUPPORT_JAVA_STYLE_CLASS_LITERALS = false;
  }
}