public ExpectedExceptionCodeAction(Document document, MethodDeclarationSyntax methodToBeFixed) { this.document = document; this.methodToBeFixed = methodToBeFixed; migrator = new ExpectedExceptionMethodMigrator(methodToBeFixed); equivalences = ExpectedExceptionTestCaseEquivalence.CreateMany(migrator); methodLineSeparator = GetMethodLineSeparator(methodToBeFixed); }
private MethodDeclarationSyntax ProduceTestMethodForTestCaseWithExpectedExceptionEquivalence( ExpectedExceptionTestCaseEquivalence equivalence, int equivalenceCount, TestMethodNamer testMethodNamer) { var testCasesToRemain = equivalence.EquivalentItems.Select(i => i.AttributeNode).ToArray(); var exceptionExpectancy = equivalence.EquivalentItems.First(); var clusterMethod = methodToBeFixed.WithoutExceptionExpectancyInAttributes(testCasesToRemain) .WithBody(CreateAssertedBlock(exceptionExpectancy)).WithTrailingTrivia(CreateClusterMethodTrailingTrivia(equivalence)) .WithIdentifier(testMethodNamer.CreateName(exceptionExpectancy, equivalenceCount)); return(clusterMethod); }
private SyntaxTriviaList CreateClusterMethodTrailingTrivia(ExpectedExceptionTestCaseEquivalence equivalence) { return(equivalence == equivalences.Last() ? methodToBeFixed.GetTrailingTrivia() : methodLineSeparator); }