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); }
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()); } }
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); }