public override void VisitAnnotation(AnnotationSyntax node) { var attribute = ConvertUnitTestAnnotation(node, CurrentMember); if (string.IsNullOrWhiteSpace(attribute.Parameters)) { AppendIndentedLine("[{0}]", attribute.Identifier); } else { // make sure parameters are comma-separated var parameters = GenericExpressionHelper.ConvertApexAnnotationParametersToCSharp(attribute.Parameters); parameters = parameters.Replace("\'", "\""); AppendIndentedLine("[{0}({1})]", attribute.Identifier, parameters); } }
public void ApexAnnotationParametersAreConvertedToCSharp() { string Convert(string x) => GenericExpressionHelper.ConvertApexAnnotationParametersToCSharp(x); var text = "Property = 1"; var csharp = Convert(text); Assert.AreEqual("Property = 1", csharp); text = @"Email = 'some\'@example.com' Name = 'Hello'"; csharp = Convert(text); Assert.AreEqual(@"Email = 'some\'@example.com', Name = 'Hello'", csharp); text = @"ID = 'Hello' Date = Date.NewInstance(1,2,3) Name='y@e\mail.com'"; csharp = Convert(text); Assert.AreEqual(@"ID = 'Hello', Date = Date.NewInstance(1,2,3), Name='y@e\mail.com'", csharp); text = @"ID='Hello'Date=Date.NewInstance(1,2,3)TestAll=true Value=10.12e+11Name='y@e\mail.com'"; csharp = Convert(text); Assert.AreEqual(@"ID='Hello', Date=Date.NewInstance(1,2,3), TestAll=true, Value=10.12e+11, Name='y@e\mail.com'", csharp); }