Skip to content

Commit e86cc61

Browse files
committed
Tests with verbatim strings. #28
1 parent c2f523c commit e86cc61

3 files changed

Lines changed: 75 additions & 0 deletions

File tree

AspNetCoreAnalyzers.Tests/ASP001ParameterNameTests/CodeFix.cs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,51 @@ public class CodeFix
1111
private static readonly ExpectedDiagnostic ExpectedDiagnostic = ExpectedDiagnostic.Create(ASP001ParameterName.Descriptor);
1212
private static readonly CodeFixProvider Fix = new ParameterNameFix();
1313

14+
[TestCase("@\"{value}\"")]
15+
[TestCase("\"{value}\"")]
16+
[TestCase("\"{value?}\"")]
17+
[TestCase("@\"{value?}\"")]
18+
[TestCase("\"api/orders/{value}\"")]
19+
[TestCase("\"api/orders/{value?}\"")]
20+
[TestCase("\"api/orders/{value:alpha}\"")]
21+
[TestCase("\"api/orders/{value:regex(a-(0|1))}\"")]
22+
[TestCase("\"api/orders/{value:regex(^\\\\d{{3}}-\\\\d{{2}}-\\\\d{4}$)}\"")]
23+
public void When(string template)
24+
{
25+
var code = @"
26+
namespace ValidCode
27+
{
28+
using Microsoft.AspNetCore.Mvc;
29+
30+
[ApiController]
31+
public class OrdersController : Controller
32+
{
33+
[HttpGet(""api/orders/{value}"")]
34+
public IActionResult GetId(string ↓wrong)
35+
{
36+
return this.Ok(wrong);
37+
}
38+
}
39+
}".AssertReplace("\"api/orders/{value}\"", template);
40+
41+
var fixedCode = @"
42+
namespace ValidCode
43+
{
44+
using Microsoft.AspNetCore.Mvc;
45+
46+
[ApiController]
47+
public class OrdersController : Controller
48+
{
49+
[HttpGet(""api/orders/{value}"")]
50+
public IActionResult GetId(string value)
51+
{
52+
return this.Ok(value);
53+
}
54+
}
55+
}".AssertReplace("\"api/orders/{value}\"", template);
56+
AnalyzerAssert.CodeFix(Analyzer, Fix, ExpectedDiagnostic, code, fixedCode);
57+
}
58+
1459
[Test]
1560
public void ImplicitSingleParameter()
1661
{

AspNetCoreAnalyzers.Tests/ASP001ParameterNameTests/ValidCode.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,34 @@ public class ValidCode
1010
private static readonly DiagnosticAnalyzer Analyzer = new AttributeAnalyzer();
1111
private static readonly DiagnosticDescriptor Descriptor = ASP001ParameterName.Descriptor;
1212

13+
[TestCase("@\"{value}\"")]
14+
[TestCase("\"{value}\"")]
15+
[TestCase("\"{value?}\"")]
16+
[TestCase("@\"{value?}\"")]
17+
[TestCase("\"api/orders/{value}\"")]
18+
[TestCase("\"api/orders/{value?}\"")]
19+
[TestCase("\"api/orders/{value:alpha}\"")]
20+
[TestCase("\"api/orders/{value:regex(a-(0|1))}\"")]
21+
public void When(string template)
22+
{
23+
var code = @"
24+
namespace ValidCode
25+
{
26+
using Microsoft.AspNetCore.Mvc;
27+
28+
[ApiController]
29+
public class OrdersController : Controller
30+
{
31+
[HttpGet(""api/orders/{value}"")]
32+
public IActionResult GetId(string value)
33+
{
34+
return this.Ok(value);
35+
}
36+
}
37+
}".AssertReplace("\"api/orders/{value}\"", template);
38+
AnalyzerAssert.Valid(Analyzer, code);
39+
}
40+
1341
[Test]
1442
public void ImplicitFromRoute()
1543
{

AspNetCoreAnalyzers.Tests/ASP005ParameterRegexTests/ValidCode.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public class ValidCode
3333
[TestCase("\"api/orders/{value:alpha}\"", "string")]
3434
[TestCase("\"api/orders/{value:regex(a-(0|1))}\"", "string")]
3535
[TestCase("\"api/orders/{value:regex(^\\\\\\\\d{{3}}-\\\\\\\\d{{2}}-\\\\\\\\d{{4}}$)}\"", "string")]
36+
[TestCase("@\"api/orders/{value:regex(^\\\\\\\\d{{3}}-\\\\\\\\d{{2}}-\\\\\\\\d{{4}}$)}\"", "string")]
37+
[TestCase("@\"api/orders/{value:regex(^\\\\d{{3}}-\\\\d{{2}}-\\\\d{{4}}$)}\"", "string")]
3638
[TestCase("\"api/orders/{value:required}\"", "string")]
3739
public void WithParameter(string parameter, string type)
3840
{

0 commit comments

Comments
 (0)