4
4
using Microsoft . AspNetCore . Mvc . ApplicationModels ;
5
5
using Moq ;
6
6
using System ;
7
+ using System . Collections . Generic ;
7
8
using System . Reflection ;
8
9
using Xunit ;
9
10
using static Moq . Times ;
10
11
11
12
public class VersionByNamespaceConventionTest
12
13
{
13
14
[ Theory ]
14
- [ InlineData ( "v1" , "1.0" ) ]
15
- [ InlineData ( "v20180401" , "2018-04-01" ) ]
16
- [ InlineData ( "v20180401_Beta" , "2018-04-01-Beta" ) ]
17
- [ InlineData ( "Contoso.Api.v1.Controllers" , "1.0" ) ]
18
- [ InlineData ( "Contoso.Api.v1_1.Controllers" , "1.1" ) ]
19
- [ InlineData ( "Contoso.Api.v0_9_Beta.Controllers" , "0.9-Beta" ) ]
20
- [ InlineData ( "Contoso.Api.v20180401.Controllers" , "2018-04-01" ) ]
21
- [ InlineData ( "Contoso.Api.v2018_04_01.Controllers" , "2018-04-01" ) ]
22
- [ InlineData ( "Contoso.Api.v20180401_Beta.Controllers" , "2018-04-01-Beta" ) ]
23
- [ InlineData ( "Contoso.Api.v2018_04_01_Beta.Controllers" , "2018-04-01-Beta" ) ]
24
- [ InlineData ( "Contoso.Api.v2018_04_01_1_0_Beta.Controllers" , "2018-04-01.1.0-Beta" ) ]
25
- [ InlineData ( "MyRestaurant.Vegetarian.Food.v1_1.Controllers" , "1.1" ) ]
15
+ [ MemberData ( nameof ( NamespaceAsVersionData ) ) ]
26
16
public void apply_should_infer_supported_api_version_from_namespace ( string @namespace , string versionText )
27
17
{
28
18
// arrange
@@ -44,18 +34,7 @@ public void apply_should_infer_supported_api_version_from_namespace( string @nam
44
34
}
45
35
46
36
[ Theory ]
47
- [ InlineData ( "v1" , "1.0" ) ]
48
- [ InlineData ( "v20180401" , "2018-04-01" ) ]
49
- [ InlineData ( "v20180401_Beta" , "2018-04-01-Beta" ) ]
50
- [ InlineData ( "Contoso.Api.v1.Controllers" , "1.0" ) ]
51
- [ InlineData ( "Contoso.Api.v1_1.Controllers" , "1.1" ) ]
52
- [ InlineData ( "Contoso.Api.v0_9_Beta.Controllers" , "0.9-Beta" ) ]
53
- [ InlineData ( "Contoso.Api.v20180401.Controllers" , "2018-04-01" ) ]
54
- [ InlineData ( "Contoso.Api.v2018_04_01.Controllers" , "2018-04-01" ) ]
55
- [ InlineData ( "Contoso.Api.v20180401_Beta.Controllers" , "2018-04-01-Beta" ) ]
56
- [ InlineData ( "Contoso.Api.v2018_04_01_Beta.Controllers" , "2018-04-01-Beta" ) ]
57
- [ InlineData ( "Contoso.Api.v2018_04_01_1_0_Beta.Controllers" , "2018-04-01.1.0-Beta" ) ]
58
- [ InlineData ( "MyRestaurant.Vegetarian.Food.v1_1.Controllers" , "1.1" ) ]
37
+ [ MemberData ( nameof ( NamespaceAsVersionData ) ) ]
59
38
public void apply_should_infer_deprecated_api_version_from_namespace ( string @namespace , string versionText )
60
39
{
61
40
// arrange
@@ -115,6 +94,28 @@ public void apply_should_ignore_unmatched_namespace()
115
94
applied . Should ( ) . BeFalse ( ) ;
116
95
}
117
96
97
+ public static IEnumerable < object [ ] > NamespaceAsVersionData
98
+ {
99
+ get
100
+ {
101
+ yield return new object [ ] { "v1" , "1.0" } ;
102
+ yield return new object [ ] { "v1RC" , "1.0-RC" } ;
103
+ yield return new object [ ] { "v20180401" , "2018-04-01" } ;
104
+ yield return new object [ ] { "v20180401_Beta" , "2018-04-01-Beta" } ;
105
+ yield return new object [ ] { "v20180401Beta" , "2018-04-01-Beta" } ;
106
+ yield return new object [ ] { "Contoso.Api.v1.Controllers" , "1.0" } ;
107
+ yield return new object [ ] { "Contoso.Api.v1_1.Controllers" , "1.1" } ;
108
+ yield return new object [ ] { "Contoso.Api.v0_9_Beta.Controllers" , "0.9-Beta" } ;
109
+ yield return new object [ ] { "Contoso.Api.v20180401.Controllers" , "2018-04-01" } ;
110
+ yield return new object [ ] { "Contoso.Api.v2018_04_01.Controllers" , "2018-04-01" } ;
111
+ yield return new object [ ] { "Contoso.Api.v20180401_Beta.Controllers" , "2018-04-01-Beta" } ;
112
+ yield return new object [ ] { "Contoso.Api.v2018_04_01_Beta.Controllers" , "2018-04-01-Beta" } ;
113
+ yield return new object [ ] { "Contoso.Api.v2018_04_01_1_0_Beta.Controllers" , "2018-04-01.1.0-Beta" } ;
114
+ yield return new object [ ] { "MyRestaurant.Vegetarian.Food.v1_1.Controllers" , "1.1" } ;
115
+ yield return new object [ ] { "VersioningSample.V5.Controllers" , "5.0" } ;
116
+ }
117
+ }
118
+
118
119
sealed class TestType : TypeDelegator
119
120
{
120
121
internal TestType ( string @namespace ) => Namespace = @namespace ;
0 commit comments