public void GetMutatedDocument_WhenHavingBinaryExpressionThatContainsAString_ShouldNotMutate() { var tree = SyntaxFactory.ParseSyntaxTree($"classC{{publicvoidDo(){{var i = \"test\" + 2; }}"); var root = tree.GetRoot(); var binaryExpressionMutationOperator = new MathMutator(); var doc = binaryExpressionMutationOperator.GetMutatedDocument(root, null); Assert.IsEmpty(doc, "Should not be able to find any mutations"); }
public void GetMutatedDocument_WhenHavingABinaryExpressionWithoutStatement_ShouldMutate() { var tree = SyntaxFactory.ParseSyntaxTree("classC{{public int Propi => 1 + 2"); var root = tree.GetRoot(); var binaryExpressionMutationOperator = new MathMutator(); var doc = binaryExpressionMutationOperator.GetMutatedDocument(root, null); Assert.AreEqual("1 - 2", doc[0].MutationDetails.Mutation.ToString()); }
public void BinaryTests(string binary, string mutatedBinary) { var tree = SyntaxFactory.ParseSyntaxTree($"classC{{publicvoidDo(){{var i = {binary};}}"); var root = tree.GetRoot(); var binaryExpressionMutationOperator = new MathMutator(); var doc = binaryExpressionMutationOperator.GetMutatedDocument(root, null); Assert.AreEqual(mutatedBinary, doc[0].MutationDetails.Mutation.ToString()); }
public void GetMutatedDocument_WhenHavingMultipleMathOperationsInSameStatement_ShouldMutateAll() { var tree = SyntaxFactory.ParseSyntaxTree("classC{{publicvoidDo(){{var i = 1+2/3;}}"); var root = tree.GetRoot(); var binaryExpressionMutationOperator = new MathMutator(); var doc = binaryExpressionMutationOperator.GetMutatedDocument(root, null); Assert.AreEqual(2, doc.Count); Assert.AreEqual("1 - 2 / 3", doc[0].MutationDetails.Mutation.ToString()); Assert.AreEqual("2 * 3", doc[1].MutationDetails.Mutation.ToString()); }
public void GetMutatedDocument_GetMutatedDocumentWithDifferentAttribute_ShouldGetAllMutations() { var tree = SyntaxFactory.ParseSyntaxTree(@" [DifferentAttribute] class C { public int Propi { get{ return 1+2; }} public void FirstMethod() { var i = 1 + 2; } public void SecondMethod() { var k = 1 + 2; } }"); var root = tree.GetRoot(); var mutator = new MathMutator(); var documents = mutator.GetMutatedDocument(root, null); Assert.AreEqual(3, documents.Count); }
public void GetMutatedDocument_GetMutatedDocumentWithExcludeFromCodeCoverageOnClass_ShouldNotGetAnyMutations() { var tree = SyntaxFactory.ParseSyntaxTree(@" [ExcludeFromCodeCoverage] class C { public int Propi { get{ return 1+2; }} public void FirstMethod() { var i = 1 + 2; } public void SecondMethod() { var k = 1 + 2; } }"); var root = tree.GetRoot(); var mutator = new MathMutator(); var documents = mutator.GetMutatedDocument(root, null); Assert.IsEmpty(documents); }
public void GetMutatedDocument_GetMutatedDocumentWithExcludeFromCodeCoverageOnProperty_ShouldGetMutationOnMethods() { var tree = SyntaxFactory.ParseSyntaxTree(@" class C { [ExcludeFromCodeCoverage] public int Propi { get{ return 1+2; }} public void FirstMethod() { var i = 1 + 2; } public void SecondMethod() { var k = 1 + 2; } }"); var root = tree.GetRoot(); var mutator = new MathMutator(); var documents = mutator.GetMutatedDocument(root, null); Assert.AreEqual(2, documents.Count); Assert.IsTrue(documents.Any(d => d.MutationName.Contains("FirstMethod"))); Assert.IsTrue(documents.Any(d => d.MutationName.Contains("SecondMethod"))); }
public void Setup() { mutator = new MathMutator(); }