Exemplo n.º 1
0
        private static void VerifyRange(string code, ImmutableArray <ICodeCleanupProvider> codeCleanups, ImmutableArray <TextSpan> spans, ref IEnumerable <TextSpan> expectedResult, string language)
        {
            var result          = (IEnumerable <TextSpan>)null;
            var spanCodeCleanup = new SimpleCodeCleanupProvider("TestCodeCleanup", (d, s, c) =>
            {
                result = s;
                return(Task.FromResult(d));
            });

            var document = CreateDocument(code, language);

            CodeCleaner.CleanupAsync(document, spans, codeCleanups.Concat(spanCodeCleanup)).Wait();

            var sortedSpans   = result.ToList();
            var expectedSpans = expectedResult.ToList();

            sortedSpans.Sort();
            expectedSpans.Sort();

            AssertEx.Equal(expectedSpans, sortedSpans);
        }
        public void WhenPropertyHasSameAttributeTypeMultipleTimes_ThenShouldSortAttributes()
        {
            // Arrange

            const string code =
                @"using System;

namespace HelloWorld 
{ 
    public class MyAwesomeModel
    {
        [XmlElement(""AuditableEvent"", typeof (AuditableEventType))]
        [XmlElement(""Association"", typeof (AssociationType1))]
        public string MyProperty {get;set;}
        public int MyProperty1 {get;set;}
    }
}";

            // Act

            var actual = CodeCleaner.Clean(code);

            // Assert

            const string expected =
                @"using System;

namespace HelloWorld 
{ 
    public class MyAwesomeModel
    {
        [XmlElement(""Association"", typeof (AssociationType1))]
        [XmlElement(""AuditableEvent"", typeof (AuditableEventType))]
        public string MyProperty {get;set;}
        public int MyProperty1 {get;set;}
    }
}";

            Assert.Equal(expected, actual);
        }
        public void WhenBlankLineBeforeAndFirstAttributeListsIsMovedDown_ThenShouldKeepBlankLineBefore()
        {
            // Arrange

            const string code =
                @"using System;

namespace Nehta.VendorLibrary.CDAPackage.EBXml
{
  public class CompoundFilterTypeLogicalOperator
  {

    [XmlElement(""PGPKeyID"", typeof (byte[]), DataType = ""base64Binary"")]
    [XmlAnyElement]
    public object[] Items {get;set;}
  }
}";

            // Act

            var actual = CodeCleaner.Clean(code);

            // Assert

            const string expected =
                @"using System;

namespace Nehta.VendorLibrary.CDAPackage.EBXml
{
  public class CompoundFilterTypeLogicalOperator
  {

    [XmlAnyElement]
    [XmlElement(""PGPKeyID"", typeof (byte[]), DataType = ""base64Binary"")]
    public object[] Items {get;set;}
  }
}";

            Assert.Equal(expected, actual);
        }
Exemplo n.º 4
0
        public void DontCrash_VB_2()
        {
            var code             = @"
Public Class Class1
    Public Custom Event Event2 As EventHandler
        AddHandler(ByVal value As EventHandler)
        End AddHandler
        RemoveHandler(ByVal value As EventHandler)
        End RemoveHandler
        RaiseEvent(ByVal sender As Object, ByVal e As EventArgs)
            e
    End Event

End Class
";
            var document         = CreateDocument(code, LanguageNames.VisualBasic);
            var semanticModel    = document.GetSemanticModelAsync().Result;
            var root             = document.GetSyntaxRootAsync().Result;
            var accessor         = root.DescendantNodes().OfType <VisualBasic.Syntax.AccessorBlockSyntax>().Last();
            var factory          = new SemanticModelWorkspaceServiceFactory();
            var provider         = WorkspaceService.GetProvider(document.Project.Solution.Workspace);
            var service          = (ISemanticModelService)factory.CreateService(provider);
            var newSemanticModel = service.GetSemanticModelForNodeAsync(document, accessor, CancellationToken.None).Result;

            Assert.NotNull(newSemanticModel);
            var newDocument = CreateDocument(code, LanguageNames.VisualBasic);
            var newRoot     = newDocument.GetSyntaxRootAsync().Result;
            var newAccessor = newRoot.DescendantNodes().OfType <VisualBasic.Syntax.AccessorBlockSyntax>().Last();

            root             = root.ReplaceNode(accessor, newAccessor);
            document         = document.WithSyntaxRoot(root);
            accessor         = root.DescendantNodes().OfType <VisualBasic.Syntax.AccessorBlockSyntax>().Last();
            newSemanticModel = service.GetSemanticModelForNodeAsync(document, accessor, CancellationToken.None).Result;
            Assert.NotNull(newSemanticModel);
            var cleanDocument = CodeCleaner.CleanupAsync(document).Result;

            Assert.Equal(document, cleanDocument);
        }
Exemplo n.º 5
0
        private static void VerifyRange(string code, ImmutableArray <ICodeCleanupProvider> codeCleanups, ImmutableArray <TextSpan> spans, ref IEnumerable <TextSpan> expectedResult, string language)
        {
            var result          = (IEnumerable <TextSpan>)null;
            var spanCodeCleanup = new MockCodeCleanupProvider()
            {
                CleanupDocumentAsyncImpl = (document, spans, options, cancellationToken) =>
                {
                    result = spans;
                    return(Task.FromResult(document));
                }
            };

            var document = CreateDocument(code, language);

            CodeCleaner.CleanupAsync(document, spans, codeCleanups.Concat(spanCodeCleanup)).Wait();

            var sortedSpans   = result.ToList();
            var expectedSpans = expectedResult.ToList();

            sortedSpans.Sort();
            expectedSpans.Sort();

            AssertEx.Equal(expectedSpans, sortedSpans);
        }
        private static async Task VerifyAsync(
            string codeWithMarker,
            string expectedResult,
            LanguageVersion langVersion = LanguageVersion.VisualBasic14
            )
        {
            MarkupTestFile.GetSpans(
                codeWithMarker,
                out var codeWithoutMarker,
                out ImmutableArray <TextSpan> textSpans
                );

            var document = CreateDocument(
                codeWithoutMarker,
                LanguageNames.VisualBasic,
                langVersion
                );
            var codeCleanups = CodeCleaner
                               .GetDefaultProviders(document)
                               .WhereAsArray(
                p =>
                p.Name
                == PredefinedCodeCleanupProviderNames.RemoveUnnecessaryLineContinuation ||
                p.Name == PredefinedCodeCleanupProviderNames.Format
                );

            var cleanDocument = await CodeCleaner.CleanupAsync(
                document,
                textSpans[0],
                codeCleanups
                );

            var actualResult = (await cleanDocument.GetSyntaxRootAsync()).ToFullString();

            Assert.Equal(expectedResult, actualResult);
        }
Exemplo n.º 7
0
        private static void TestStripComments(string originalCode, string expectedCode)
        {
            var cleanedCode = CodeCleaner.StripComments(originalCode);

            Assert.That(cleanedCode, Is.EqualTo(expectedCode));
        }