Esempio n. 1
0
        public async Task Test_PublicMethodContractAnalyzer()
        {
            ClassTemplate template = await ClassTemplate.FromMethodAsync(
                @"public void Foo(string s{on}) {}");

            ValidateDiagnostics(template);
        }
        public async Task <bool> Test_Refactoring_Availability(string method)
        {
            var doc = await ClassTemplate.FromMethodAsync(method);

            var refactoring = await AddNotNullRequiresRefactoring.Create(doc.SelectedNode, doc.SemanticModel);

            return(await refactoring.IsAvailableAsync(CancellationToken.None));
        }
Esempio n. 3
0
        public async Task TestDiagnosticMessage()
        {
            // Arrange
            ClassTemplate template = await ClassTemplate.FromMethodAsync(
                @"public class Bla{} public Bl{on}a Foo() {return new Bla();}");

            // Act
            var diagnostics = GetSortedDiagnostics(template.Source);

            // Assert
            string message = @"Lack of not-null ensures for nullable return type 'Bla'.";

            Assert.AreEqual(diagnostics[0].GetMessage(), message);
        }
Esempio n. 4
0
        public async Task TestDiagnosticMessage()
        {
            // Arrange
            ClassTemplate template = await ClassTemplate.FromMethodAsync(
                @"public void Foo(string s{on}tr) {}");

            // Act
            var diagnostics = GetSortedDiagnostics(template.Source);

            // Assert
            string message = @"Lack of argument validation for nullable parameter 'str'.";

            Assert.AreEqual(diagnostics[0].GetMessage(), message);
        }
        public async Task Test_Reverse()
        {
            string method =
                @"public static void Foo(stirng s{caret}tr) {}";

            var doc = await ClassTemplate.FromMethodAsync(method);

            var actions  = new List <CodeAction>();
            var context  = new CodeRefactoringContext(doc.Document, doc.SelectedNode.Span, (a) => actions.Add(a), CancellationToken.None);
            var provider = new CodeContractor.Refactorings.AddRequiresRefactoringProvider();

            provider.ComputeRefactoringsAsync(context).Wait();

            if (actions.Count != 0)
            {
                var operations = await actions[0].GetOperationsAsync(CancellationToken.None);

                Assert.IsNotEmpty(operations);
                ApplyChangesOperation operation = operations.First() as ApplyChangesOperation;

                var changedSolution = operation.ChangedSolution;
            }
        }
Esempio n. 6
0
        public async Task TestAnalyzerAvailability(string source)
        {
            ClassTemplate template = await ClassTemplate.FromMethodAsync(source);

            ValidateDiagnostics(template);
        }