예제 #1
0
        public void ConditionalExpression_can_be_constructed()
        {
            var root     = RDom.CSharp.Load(csharpCode);
            var method   = root.Classes.First().Methods.First();
            var expected = "x == 1";

            var expression = new RDomOtherExpression(null, expected, ExpectedLanguages.CSharp, ExpressionType.Unknown);

            Assert.IsNotNull(expression);
            var actual = RDom.CSharp.GetSyntaxNode(expression).ToFullString();

            Assert.AreEqual(expected, actual);
        }
예제 #2
0
        protected override IDom CreateItemFrom(SyntaxNode syntaxNode, IDom parent, SemanticModel model)
        {
            var syntax = syntaxNode as ExpressionSyntax;

            if (syntaxNode is IdentifierNameSyntax)
            {
                // TODO: Work out how to send this via the normal extensible system
                var newItem = new RDomOtherExpression(syntaxNode, parent, model);
                newItem.InitialExpressionString   = syntax.ToString();
                newItem.InitialExpressionLanguage = ExpectedLanguages.CSharp;
                newItem.ExpressionType            = ExpressionType.Identifier;
                return(newItem);
            }
            else
            {
                return(OutputContext.Corporation.Create(syntaxNode, parent, model).FirstOrDefault());
            }
        }
예제 #3
0
        public void While_statement_can_be_constructed()
        {
            var root   = RDom.CSharp.Load(csharpCode);
            var method = root.Classes.First().Methods.First();

            var expression     = new RDomOtherExpression(null, "x == 1", ExpectedLanguages.CSharp, ExpressionType.Unknown);
            var whileStatement = new RDomWhileStatement(expression);

            whileStatement.HasBlock = true;
            Assert.IsNotNull(expression);
            var actual = RDom.CSharp.GetSyntaxNode(whileStatement).ToFullString();

            var expected = "while (x == 1) { }";

            Assert.AreEqual(expected, actual);
            method.StatementsAll.AddOrMove(whileStatement);
            actual = RDom.CSharp.GetSyntaxNode(method).ToFullString();
            var expectedMethod = "   public int Bar()\r\n   {\r\nwhile (x == 1) { }   }\r\n";

            Assert.AreEqual(expectedMethod, actual);
        }