protected override ExpressionSyntax GetNewExpression(ExpressionSyntax expression, FluentAssertionsDiagnosticProperties properties) { if (properties.VisitorName == nameof(CollectionShouldNotContainPropertyAnalyzer.AnyShouldBeFalseSyntaxVisitor)) { var remove = new NodeReplacement.RemoveAndExtractArgumentsNodeReplacement("Any"); var newExpression = GetNewExpression(expression, remove); return(GetNewExpression(newExpression, NodeReplacement.RenameAndPrependArguments("BeFalse", "NotContain", remove.Arguments))); } else if (properties.VisitorName == nameof(CollectionShouldNotContainPropertyAnalyzer.WhereShouldBeEmptySyntaxVisitor)) { var remove = new NodeReplacement.RemoveAndExtractArgumentsNodeReplacement("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}"); }