Exemple #1
0
        public async Task VerifyGetFixes()
        {
            var code = File.ReadAllText(
                $@"Targets\{nameof(FindSaveAssignmentIssueAnalyzerAddAsyncAssignmentCodeFixTests)}\{(nameof(this.VerifyGetFixes))}.cs");
            var document = TestHelpers.Create(code);
            var tree     = await document.GetSyntaxTreeAsync();

            var diagnostics = await TestHelpers.GetDiagnosticsAsync(code, new FindSaveAssignmentIssueAnalyzer());

            var sourceSpan = diagnostics[0].Location.SourceSpan;

            var actions = new List <CodeAction>();
            var codeActionRegistration = new Action <CodeAction, ImmutableArray <Diagnostic> >(
                (a, _) => { actions.Add(a); });

            var fix            = new FindSaveAssignmentIssueAnalyzerAddAsyncAssignmentCodeFix();
            var codeFixContext = new CodeFixContext(document, diagnostics[0],
                                                    codeActionRegistration, new CancellationToken(false));
            await fix.RegisterCodeFixesAsync(codeFixContext);

            Assert.AreEqual(1, actions.Count, nameof(actions.Count));

            await TestHelpers.VerifyActionAsync(actions,
                                                FindSaveAssignmentIssueAnalyzerAddAssignmentCodeFixConstants.AddAssignmentDescription, document,
                                                tree, new[] { $@"x = " });
        }
Exemple #2
0
        public void VerifyGetFixableDiagnosticIds()
        {
            var fix = new FindSaveAssignmentIssueAnalyzerAddAsyncAssignmentCodeFix();
            var ids = fix.FixableDiagnosticIds.ToList();

            Assert.AreEqual(1, ids.Count, nameof(ids.Count));
            Assert.AreEqual(FindSaveAsyncAssignmentIssueAnalyzerConstants.DiagnosticId, ids[0],
                            nameof(FindSaveAsyncAssignmentIssueAnalyzerConstants.DiagnosticId));
        }
        public async Task VerifyGetFixes()
        {
            var code =
                @"using Csla;
using System.Threading.Tasks;

public class A : BusinessBase<A> { }

public class VerifyGetFixes
{
  private IDataPortal<A> _dataPortal;

  public VerifyGetFixes(IDataPortal<A> dataPortal)
  {
    _dataPortal = dataPortal;
  }

  public async Task Use()
  {
    var x = _dataPortal.Fetch<A>();
    await x.SaveAsync();
  }
}";
            var document = TestHelpers.Create(code);
            var tree     = await document.GetSyntaxTreeAsync();

            var diagnostics = await TestHelpers.GetDiagnosticsAsync(code, new FindSaveAssignmentIssueAnalyzer());

            var sourceSpan = diagnostics[0].Location.SourceSpan;

            var actions = new List <CodeAction>();
            var codeActionRegistration = new Action <CodeAction, ImmutableArray <Diagnostic> >(
                (a, _) => { actions.Add(a); });

            var fix            = new FindSaveAssignmentIssueAnalyzerAddAsyncAssignmentCodeFix();
            var codeFixContext = new CodeFixContext(document, diagnostics[0],
                                                    codeActionRegistration, new CancellationToken(false));
            await fix.RegisterCodeFixesAsync(codeFixContext);

            Assert.AreEqual(1, actions.Count, nameof(actions.Count));

            await TestHelpers.VerifyChangesAsync(actions,
                                                 FindSaveAssignmentIssueAnalyzerAddAssignmentCodeFixConstants.AddAssignmentDescription, document,
                                                 (model, newRoot) =>
            {
                Assert.IsTrue(newRoot.DescendantNodes(_ => true).OfType <AssignmentExpressionSyntax>().Any());
            });
        }
Exemple #4
0
        public async Task VerifyGetFixes()
        {
            var code =
                @"using System.Threading.Tasks;

namespace Csla.Analyzers.Tests.Targets.FindSaveAssignmentIssueAnalyzerAddAsyncAssignmentCodeFixTests
{
  public class User : BusinessBase<User> { }

  public class VerifyGetFixes
  {
    public async Task UseUser()
    {
      var x = DataPortal.Fetch<User>();
      await x.SaveAsync();
    }
  }
}";
            var document = TestHelpers.Create(code);
            var tree     = await document.GetSyntaxTreeAsync();

            var diagnostics = await TestHelpers.GetDiagnosticsAsync(code, new FindSaveAssignmentIssueAnalyzer());

            var sourceSpan = diagnostics[0].Location.SourceSpan;

            var actions = new List <CodeAction>();
            var codeActionRegistration = new Action <CodeAction, ImmutableArray <Diagnostic> >(
                (a, _) => { actions.Add(a); });

            var fix            = new FindSaveAssignmentIssueAnalyzerAddAsyncAssignmentCodeFix();
            var codeFixContext = new CodeFixContext(document, diagnostics[0],
                                                    codeActionRegistration, new CancellationToken(false));
            await fix.RegisterCodeFixesAsync(codeFixContext);

            Assert.AreEqual(1, actions.Count, nameof(actions.Count));

            await TestHelpers.VerifyActionAsync(actions,
                                                FindSaveAssignmentIssueAnalyzerAddAssignmentCodeFixConstants.AddAssignmentDescription, document,
                                                tree, new[] { "x =" });
        }