Boo.Lang.Parser.Tests.BooParserTestCase.TestProperties1 C# (CSharp) Method

TestProperties1() private method

private TestProperties1 ( ) : void
return void
        public void TestProperties1()
        {
            Boo.Lang.Compiler.Ast.Module module = ParseTestCase("properties_1.boo");

            ClassDefinition cd = (ClassDefinition)module.Members[0];
            Assert.AreEqual("Person", cd.Name);
            Assert.AreEqual("_id", cd.Members[0].Name);
            Assert.AreEqual("_name", cd.Members[1].Name);

            Property p = (Property)cd.Members[3];
            Assert.AreEqual("ID", p.Name);
            Assert.AreEqual("string", ((SimpleTypeReference)p.Type).Name);
            Assert.IsNotNull(p.Getter, "Getter");
            Assert.AreEqual(1, p.Getter.Body.Statements.Count);
            Assert.AreEqual("_id", ((ReferenceExpression)((ReturnStatement)p.Getter.Body.Statements[0]).Expression).Name);
            Assert.IsNull(p.Setter, "Setter");

            p = (Property)cd.Members[4];
            Assert.AreEqual("Name", p.Name);
            Assert.AreEqual("string", ((SimpleTypeReference)p.Type).Name);
            Assert.IsNotNull(p.Getter, "Getter ");
            Assert.AreEqual(1, p.Getter.Body.Statements.Count);
            Assert.AreEqual("_name", ((ReferenceExpression)((ReturnStatement)p.Getter.Body.Statements[0]).Expression).Name);

            Assert.IsNotNull(p.Setter, "Setter");
            Assert.AreEqual(1, p.Setter.Body.Statements.Count);

            BinaryExpression a = (BinaryExpression)((ExpressionStatement)p.Setter.Body.Statements[0]).Expression;
            Assert.AreEqual(BinaryOperatorType.Assign, a.Operator);
            Assert.AreEqual("_name", ((ReferenceExpression)a.Left).Name);
            Assert.AreEqual("value", ((ReferenceExpression)a.Right).Name);
        }