コード例 #1
0
        public void EvaluateUndefinedClassVar()
        {
            ClassVarExpression expr    = new ClassVarExpression("foo");
            DynamicClass       cls     = new DynamicClass(null);
            DynamicObject      obj     = new DynamicObject(cls);
            Context            context = new Context(obj, null);

            Assert.IsNull(expr.Evaluate(context));
        }
コード例 #2
0
        public void EvaluateDefinedClassVar()
        {
            ClassVarExpression expr = new ClassVarExpression("one");
            DynamicClass       cls  = new DynamicClass(null);
            DynamicObject      obj  = new DynamicObject(cls);

            cls.SetValue("one", 1);
            Context context = new Context(obj, null);

            Assert.AreEqual(1, expr.Evaluate(context));
        }
コード例 #3
0
ファイル: ParserTests.cs プロジェクト: parhelia512/RubySharp
        public void ParseClassVariableExpression()
        {
            Parser parser   = new Parser("@@a");
            var    expected = new ClassVarExpression("a");

            var result = parser.ParseExpression();

            Assert.IsNotNull(result);
            Assert.AreEqual(expected, result);

            Assert.IsNull(parser.ParseExpression());
        }
コード例 #4
0
        public void Equals()
        {
            ClassVarExpression expr1 = new ClassVarExpression("one");
            ClassVarExpression expr2 = new ClassVarExpression("two");
            ClassVarExpression expr3 = new ClassVarExpression("one");

            Assert.IsTrue(expr1.Equals(expr3));
            Assert.IsTrue(expr3.Equals(expr1));
            Assert.AreEqual(expr1.GetHashCode(), expr3.GetHashCode());

            Assert.IsFalse(expr1.Equals(null));
            Assert.IsFalse(expr1.Equals(123));
            Assert.IsFalse(expr1.Equals(expr2));
            Assert.IsFalse(expr2.Equals(expr1));
        }