private void ShouldNotMutate() { SyntaxTree tree = CSharpSyntaxTree.ParseText($@" namespace Test {{ class Program {{ static int Method() {{ int variable = 0; Method(out var x); if (x is Type v) {{ return; }} switch (x) {{ case 1: return; break; continue; goto X; throw x; }} return 1; }} }} }}"); var statements = tree.GetRoot() .DescendantNodes() .OfType <StatementSyntax>(); var target = new StatementMutator(); var result = statements.SelectMany(target.ApplyMutations).ToList(); result.ShouldBeEmpty(); }
private void ShouldMutate(string statementString) { var source = $@"class Test {{ void Method() {{ {statementString} }} }}"; var tree = CSharpSyntaxTree.ParseText(source).GetRoot(); var statement = tree.DescendantNodes().OfType <StatementSyntax>().Where(s => s is not BlockSyntax).First(); var target = new StatementMutator(); var result = target.ApplyMutations(statement).ToList(); var mutation = result.ShouldHaveSingleItem(); mutation.ReplacementNode.ShouldBeOfType(typeof(EmptyStatementSyntax)); mutation.DisplayName.ShouldBe("Statement mutation"); }
public void ShouldBeMutationlevelStandard() { var target = new StatementMutator(); target.MutationLevel.ShouldBe(MutationLevel.Standard); }