Пример #1
0
        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);
        }