private ApexExpressionSyntax ConvertExpression(ExpressionSyntax expression) { if (expression == null) { return(null); } var apexExpr = expression.ToString(); apexExpr = GenericExpressionHelper.ConvertSoqlQueriesToApex(apexExpr); apexExpr = GenericExpressionHelper.ConvertSoqlStatementsToApex(apexExpr); apexExpr = GenericExpressionHelper.ConvertTypeofExpressionsToApex(apexExpr); apexExpr = GenericExpressionHelper.ConvertCSharpIsTypeExpressionToApex(apexExpr); apexExpr = GenericExpressionHelper.ConvertCSharpTypesToApex(apexExpr); apexExpr = apexExpr.Replace("\"", "'"); return(new ApexExpressionSyntax(apexExpr)); }
public void ApexInstanceOfConvertedToCSharpAndBackAgain() { string ToCSharp(string x) => GenericExpressionHelper.ConvertApexInstanceOfTypeExpressionToCSharp(x); string ToApex(string x) => GenericExpressionHelper.ConvertCSharpIsTypeExpressionToApex(x); var text = "Property instanceof int"; var csharp = ToCSharp(text); Assert.AreEqual("Property is int", csharp); var apex = ToApex(csharp); Assert.AreEqual(text, apex); text = @"int a = Value instanceof Map<string, string> ? 10 : 20"; csharp = ToCSharp(text); Assert.AreEqual(@"int a = Value is Map<string, string> ? 10 : 20", csharp); apex = ToApex(csharp); Assert.AreEqual(text, apex); }