Skip to content

Commit cb6c941

Browse files
Add LINQ Append/Prepend mutation
Add LINQ mutation to change `Append` to `Prepend` and vice-versa.
1 parent b873b62 commit cb6c941

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

src/Stryker.Abstractions/LinqExpression.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,7 @@ public enum LinqExpression
3838
OrderDescending,
3939
SkipLast,
4040
TakeLast,
41-
UnionBy
41+
UnionBy,
42+
Append,
43+
Prepend
4244
}

src/Stryker.Core/Stryker.Core.UnitTest/Mutators/LinqMutatorTest.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class LinqMutatorTest : TestBase
1616
/// </summary>
1717
/// <param name="expression"></param>
1818
/// <returns></returns>
19-
private ExpressionSyntax GenerateExpressions(string expression)
19+
private static MemberAccessExpressionSyntax GenerateExpressions(string expression)
2020
{
2121
var tree = CSharpSyntaxTree.ParseText($@"
2222
using System;
@@ -91,6 +91,8 @@ public void ShouldBeMutationLevelStandard()
9191
[DataRow(LinqExpression.OrderDescending, LinqExpression.Order)]
9292
[DataRow(LinqExpression.UnionBy, LinqExpression.IntersectBy)]
9393
[DataRow(LinqExpression.IntersectBy, LinqExpression.UnionBy)]
94+
[DataRow(LinqExpression.Append, LinqExpression.Prepend)]
95+
[DataRow(LinqExpression.Prepend, LinqExpression.Append)]
9496
public void ShouldMutate(LinqExpression original, LinqExpression expected)
9597
{
9698
var target = new LinqMutator();

src/Stryker.Core/Stryker.Core/Mutators/LinqMutator.cs

+6-2
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ static LinqMutator()
5555
{ LinqExpression.Order, LinqExpression.OrderDescending },
5656
{ LinqExpression.OrderDescending, LinqExpression.Order },
5757
{ LinqExpression.UnionBy, LinqExpression.IntersectBy },
58-
{ LinqExpression.IntersectBy, LinqExpression.UnionBy }
58+
{ LinqExpression.IntersectBy, LinqExpression.UnionBy },
59+
{ LinqExpression.Append, LinqExpression.Prepend },
60+
{ LinqExpression.Prepend, LinqExpression.Append }
5961
};
6062
RequireArguments = new HashSet<LinqExpression>
6163
{
@@ -73,7 +75,9 @@ static LinqMutator()
7375
LinqExpression.MaxBy,
7476
LinqExpression.MinBy,
7577
LinqExpression.IntersectBy,
76-
LinqExpression.UnionBy
78+
LinqExpression.UnionBy,
79+
LinqExpression.Append,
80+
LinqExpression.Prepend
7781
};
7882
}
7983
/// <summary> Apply mutations to an <see cref="InvocationExpressionSyntax"/> </summary>

0 commit comments

Comments
 (0)