public void EvaluateTypeConstant() { Machine machine = new Machine(); DoubleColonExpression expression = new DoubleColonExpression(new ConstantExpression(typeof(TokenType)), "Name"); var result = expression.Evaluate(machine.RootContext); Assert.IsNotNull(result); Assert.AreEqual(TokenType.Name, result); }
public void EvaluateConstant() { Machine machine = new Machine(); machine.ExecuteText("module MyModule; FOO = 3; end"); DoubleColonExpression expression = new DoubleColonExpression(new NameExpression("MyModule"), "FOO"); var result = expression.Evaluate(machine.RootContext); Assert.IsNotNull(result); Assert.AreEqual(3, result); }
public void EvaluateUndefinedConstant() { Machine machine = new Machine(); machine.ExecuteText("module MyModule;end"); DoubleColonExpression expression = new DoubleColonExpression(new NameExpression("MyModule"), "FOO"); try { expression.Evaluate(machine.RootContext); Assert.Fail(); } catch (Exception ex) { Assert.IsInstanceOfType(ex, typeof(NameError)); Assert.AreEqual("unitialized constant MyModule::FOO", ex.Message); } }