Skip to content

Commit 982f619

Browse files
committed
Added various tests cases for the Versioning plugin (closes #358)
1 parent 443aa68 commit 982f619

File tree

4 files changed

+68
-0
lines changed

4 files changed

+68
-0
lines changed

test/MyTested.AspNetCore.Mvc.Versioning.Test/BuildersTests/PipelineTests/WhichControllerInstanceBuilderTests.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,29 @@ public void PipelineAssertionShouldWorkCorrectlyWithVersioning()
1616
.ShouldReturn()
1717
.Ok();
1818
}
19+
20+
[Fact]
21+
public void PipelineAssertionShouldWorkCorrectlyWithQueryVersioning()
22+
{
23+
MyPipeline
24+
.Configuration()
25+
.ShouldMap("api/versioning?api-version=2.0")
26+
.To<QueryVersioningController>(c => c.Index())
27+
.Which()
28+
.ShouldReturn()
29+
.Ok();
30+
}
31+
32+
[Fact]
33+
public void RouteAssertionShouldWorkCorrectlyWithActionVersioningWhichDoesNotExist()
34+
{
35+
MyPipeline
36+
.Configuration()
37+
.ShouldMap("api/v3.0/versioning")
38+
.To<VersioningController>(c => c.SpecificVersion())
39+
.Which()
40+
.ShouldReturn()
41+
.Ok();
42+
}
1943
}
2044
}

test/MyTested.AspNetCore.Mvc.Versioning.Test/BuildersTests/RoutingTests/RouteTestBuilderTests.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,32 @@ public void RouteAssertionShouldWorkCorrectlyWithVersioningWhichDoesNotExist()
2222
.ShouldMap("api/v1.0/versioning")
2323
.ToNonExistingRoute();
2424
}
25+
26+
[Fact]
27+
public void RouteAssertionShouldWorkCorrectlyWithQueryVersioning()
28+
{
29+
MyRouting
30+
.Configuration()
31+
.ShouldMap("api/versioning?api-version=2.0")
32+
.To<QueryVersioningController>(c => c.Index());
33+
}
34+
35+
[Fact]
36+
public void RouteAssertionShouldWorkCorrectlyWithQueryVersioningWhichDoesNotExist()
37+
{
38+
MyRouting
39+
.Configuration()
40+
.ShouldMap("api/versioning?api-version=1.0")
41+
.ToNonExistingRoute();
42+
}
43+
44+
[Fact]
45+
public void RouteAssertionShouldWorkCorrectlyWithActionVersioningWhichDoesNotExist()
46+
{
47+
MyRouting
48+
.Configuration()
49+
.ShouldMap("api/v3.0/versioning")
50+
.To<VersioningController>(c => c.SpecificVersion());
51+
}
2552
}
2653
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
namespace MyTested.AspNetCore.Mvc.Test.Setups.Controllers
2+
{
3+
using Microsoft.AspNetCore.Mvc;
4+
5+
[ApiController]
6+
[ApiVersion("2.0")]
7+
[Route("api/versioning")]
8+
public class QueryVersioningController : Controller
9+
{
10+
[HttpGet]
11+
public IActionResult Index() => this.Ok();
12+
}
13+
}

test/MyTested.AspNetCore.Mvc.Versioning.Test/Setups/Controllers/VersioningController.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,9 @@ public class VersioningController : Controller
99
{
1010
[HttpGet]
1111
public IActionResult Index() => this.Ok();
12+
13+
[HttpGet]
14+
[MapToApiVersion("3.0")]
15+
public IActionResult SpecificVersion() => this.Ok();
1216
}
1317
}

0 commit comments

Comments
 (0)