protected override ExpressionSyntax GetNewExpression(ExpressionSyntax expression, FluentAssertionsDiagnosticProperties properties) { var remove = NodeReplacement.RemoveAndExtractArguments("ContainsKey"); var newExpression = GetNewExpression(expression, remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("BeTrue", "ContainKey", remove.Arguments))); }
protected override ExpressionSyntax GetNewExpression(ExpressionSyntax expression, FluentAssertionsDiagnosticProperties properties) { var remove = NodeReplacement.RemoveAndExtractArguments("Intersect"); var newExpression = GetNewExpression(expression, remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("BeEmpty", "NotIntersectWith", remove.Arguments))); }
private ExpressionSyntax GetCombinedAssertions(ExpressionSyntax expression, string removeMethod, string renameMethod) { var remove = NodeReplacement.RemoveAndExtractArguments(removeMethod); var newExpression = GetNewExpression(expression, NodeReplacement.RemoveMethodBefore(removeMethod), remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments(renameMethod, "NotBeNullOrEmpty", remove.Arguments))); }
protected override ExpressionSyntax GetNewExpression(ExpressionSyntax expression, FluentAssertionsDiagnosticProperties properties) { if (properties.VisitorName == nameof(CollectionShouldHaveElementAtAnalyzer.ElementAtIndexShouldBeSyntaxVisitor)) { var remove = NodeReplacement.RemoveAndExtractArguments("ElementAt"); var newExpression = GetNewExpression(expression, remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("Be", "HaveElementAt", remove.Arguments))); } else if (properties.VisitorName == nameof(CollectionShouldHaveElementAtAnalyzer.IndexerShouldBeSyntaxVisitor)) { var remove = NodeReplacement.RemoveAndRetrieveIndexerArguments("Should"); var newExpression = GetNewExpression(expression, remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("Be", "HaveElementAt", remove.Arguments))); } else if (properties.VisitorName == nameof(CollectionShouldHaveElementAtAnalyzer.SkipFirstShouldBeSyntaxVisitor)) { var remove = NodeReplacement.RemoveAndExtractArguments("Skip"); var newExpression = GetNewExpression(expression, remove, NodeReplacement.Remove("First")); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("Be", "HaveElementAt", remove.Arguments))); } throw new System.InvalidOperationException($"Invalid visitor name - {properties.VisitorName}"); }
protected override ExpressionSyntax GetNewExpression(ExpressionSyntax expression, FluentAssertionsDiagnosticProperties properties) { if (properties.VisitorName == nameof(CollectionShouldNotContainPropertyAnalyzer.AnyShouldBeFalseSyntaxVisitor)) { var remove = NodeReplacement.RemoveAndExtractArguments("Any"); var newExpression = GetNewExpression(expression, remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("BeFalse", "NotContain", remove.Arguments))); } else if (properties.VisitorName == nameof(CollectionShouldNotContainPropertyAnalyzer.WhereShouldBeEmptySyntaxVisitor)) { var remove = NodeReplacement.RemoveAndExtractArguments("Where"); var newExpression = GetNewExpression(expression, remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("BeEmpty", "NotContain", remove.Arguments))); } /* * else if (properties.VisitorName == nameof(CollectionShouldNotContainPropertyAnalyzer.ShouldOnlyContainNotSyntaxVisitor)) * { * return GetNewExpression(expression, NodeReplacement.RenameAndNegateLambda("OnlyContain", "NotContain")); * } */ throw new System.InvalidOperationException($"Invalid visitor name - {properties.VisitorName}"); }
protected override ExpressionSyntax GetNewExpression(ExpressionSyntax expression, FluentAssertionsDiagnosticProperties properties) { if (properties.VisitorName == nameof(StringShouldNotBeNullOrEmptyAnalyzer.StringShouldNotBeNullAndNotBeEmptySyntaxVisitor)) { var remove = NodeReplacement.RemoveAndExtractArguments("NotBeEmpty"); var newExpression = GetNewExpression(expression, remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("NotBeNull", "NotBeNullOrEmpty", remove.Arguments))); } else if (properties.VisitorName == nameof(StringShouldNotBeNullOrEmptyAnalyzer.StringShouldNotBeEmptyAndNotBeNullSyntaxVisitor)) { var remove = NodeReplacement.RemoveAndExtractArguments("NotBeNull"); var newExpression = GetNewExpression(expression, remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("NotBeEmpty", "NotBeNullOrEmpty", remove.Arguments))); } else if (properties.VisitorName == nameof(StringShouldNotBeNullOrEmptyAnalyzer.StringIsNullOrEmptyShouldBeFalseSyntaxVisitor)) { var remove = NodeReplacement.RemoveAndExtractArguments("IsNullOrEmpty"); var newExpression = GetNewExpression(expression, remove); var rename = NodeReplacement.Rename("BeFalse", "NotBeNullOrEmpty"); newExpression = GetNewExpression(newExpression, rename); var stringKeyword = newExpression.DescendantNodes().OfType <PredefinedTypeSyntax>().Single(); var subject = remove.Arguments.First().Expression; return(newExpression.ReplaceNode(stringKeyword, subject.WithTriviaFrom(stringKeyword))); } throw new System.InvalidOperationException($"Invalid visitor name - {properties.VisitorName}"); }
protected override ExpressionSyntax GetNewExpression(ExpressionSyntax expression, FluentAssertionsDiagnosticProperties properties) { var remove = NodeReplacement.RemoveAndExtractArguments("Abs"); var newExpression = GetNewExpression(expression, remove); var subtractExpression = (BinaryExpressionSyntax)remove.Arguments[0].Expression; var actual = subtractExpression.Right as IdentifierNameSyntax; var expected = subtractExpression.Left; newExpression = GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("BeLessOrEqualTo", "BeApproximately", new SeparatedSyntaxList <ArgumentSyntax>().Add(SyntaxFactory.Argument(expected)))); newExpression = RenameIdentifier(newExpression, "Math", actual.Identifier.Text); return(newExpression); }
protected override ExpressionSyntax GetNewExpression(ExpressionSyntax expression, FluentAssertionsDiagnosticProperties properties) { if (properties.VisitorName == nameof(CollectionShouldNotBeNullOrEmptyAnalyzer.ShouldNotBeNullAndNotBeEmptySyntaxVisitor)) { var remove = NodeReplacement.RemoveAndExtractArguments("NotBeEmpty"); var newExpression = GetNewExpression(expression, remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("NotBeNull", "NotBeNullOrEmpty", remove.Arguments))); } else if (properties.VisitorName == nameof(CollectionShouldNotBeNullOrEmptyAnalyzer.ShouldNotBeEmptyAndNotBeNullSyntaxVisitor)) { var remove = NodeReplacement.RemoveAndExtractArguments("NotBeNull"); var newExpression = GetNewExpression(expression, remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("NotBeEmpty", "NotBeNullOrEmpty", remove.Arguments))); } throw new System.InvalidOperationException($"Invalid visitor name - {properties.VisitorName}"); }