You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
2.1 KiB
93 lines
2.1 KiB
using System; |
|
using NUnit.Framework; |
|
using ICSharpCode.NRefactory.CSharp.Refactoring; |
|
using ICSharpCode.NRefactory.CSharp.CodeActions; |
|
|
|
namespace ICSharpCode.NRefactory.CSharp.CodeIssues |
|
{ |
|
[TestFixture] |
|
public class RedundantWhereWithPredicateIssueTests : InspectionActionTestBase |
|
{ |
|
[Test] |
|
public void TestWhereAnyCase1 () |
|
{ |
|
var input = @"using System.Linq; |
|
public class CSharpDemo { |
|
public void Bla () { |
|
int[] arr; |
|
var bla = arr.Where (x => x < 4).Any (); |
|
} |
|
}"; |
|
|
|
TestRefactoringContext context; |
|
var issues = GetIssues (new RedundantWhereWithPredicateIssue (), input, out context); |
|
Assert.AreEqual (1, issues.Count); |
|
CheckFix (context, issues, @"using System.Linq; |
|
public class CSharpDemo { |
|
public void Bla () { |
|
int[] arr; |
|
var bla = arr.Any (x => x < 4); |
|
} |
|
}"); |
|
} |
|
|
|
[Test] |
|
public void TestWhereAnyWrongWhere1 () |
|
{ |
|
var input = @"using System.Linq; |
|
public class CSharpDemo { |
|
public void Bla () { |
|
int[] arr; |
|
var bla = arr.Where ((x, i) => x + i < 4).Any (); |
|
} |
|
}"; |
|
|
|
TestRefactoringContext context; |
|
var issues = GetIssues (new RedundantWhereWithPredicateIssue (), input, out context); |
|
Assert.AreEqual (0, issues.Count); |
|
} |
|
|
|
[Test] |
|
public void TestWhereAnyWrongWhere2 () |
|
{ |
|
var input = @"using System; |
|
using System.Linq; |
|
public class X |
|
{ |
|
X Where (Func<int,int> f) { return null; } |
|
bool Any () { return false; } |
|
public void Bla () { |
|
X ex = null; |
|
var bla = ex.Where (x => x + 1).Any (); |
|
} |
|
}"; |
|
|
|
TestRefactoringContext context; |
|
var issues = GetIssues (new RedundantWhereWithPredicateIssue (), input, out context); |
|
Assert.AreEqual (0, issues.Count); |
|
} |
|
|
|
[Test] |
|
public void TestWhereCount() |
|
{ |
|
var input = @"using System.Linq; |
|
public class CSharpDemo { |
|
public void Bla () { |
|
int[] arr; |
|
var bla = arr.Where (x => x < 4).Count (); |
|
} |
|
}"; |
|
|
|
TestRefactoringContext context; |
|
var issues = GetIssues (new RedundantWhereWithPredicateIssue (), input, out context); |
|
Assert.AreEqual (1, issues.Count); |
|
CheckFix (context, issues, @"using System.Linq; |
|
public class CSharpDemo { |
|
public void Bla () { |
|
int[] arr; |
|
var bla = arr.Count (x => x < 4); |
|
} |
|
}"); |
|
} |
|
} |
|
}
|
|
|