2
2
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
3
3
4
4
using System ;
5
+ using System . Globalization ;
5
6
using System . IO ;
6
7
using System . Threading . Tasks ;
7
8
using Microsoft . AspNet . Http ;
@@ -18,56 +19,48 @@ namespace Microsoft.AspNet.Mvc.Razor
18
19
public class RazorPageCreateTagHelperTest
19
20
{
20
21
[ Fact ]
21
- public void CreateTagHelper_CreatesProvidedTagHelperType ( )
22
- {
23
- // Arrange
24
- var instance = CreateTestRazorPage ( ) ;
25
-
26
- // Act
27
- var tagHelper = instance . CreateTagHelper < NoServiceTagHelper > ( ) ;
28
-
29
- // Assert
30
- Assert . NotNull ( tagHelper ) ;
31
- }
32
-
33
- [ Fact ]
34
- public void CreateTagHelper_ActivatesProvidedTagHelperType_Constructor ( )
22
+ public void CreateTagHelper_ThrowsIfNoParameterlessConstructor ( )
35
23
{
36
24
// Arrange
37
25
var instance = CreateTestRazorPage ( ) ;
26
+ var expectedErrorMessage = string . Format (
27
+ CultureInfo . InvariantCulture ,
28
+ "Tag helper `{0}` must have a public paramterless constructor." ,
29
+ typeof ( NoParameterlessConstructor ) . FullName ) ;
38
30
39
- // Act
40
- var tagHelper = instance . CreateTagHelper < ConstructorServiceTagHelper > ( ) ;
31
+ // Act & Assert
32
+ var ex = Assert . Throws < MissingMethodException > ( ( ) =>
33
+ {
34
+ instance . CreateTagHelper < NoParameterlessConstructor > ( ) ;
35
+ } ) ;
41
36
42
- // Assert
43
- Assert . NotNull ( tagHelper . PassedInService ) ;
37
+ Assert . Equal ( expectedErrorMessage , ex . Message ) ;
44
38
}
45
39
46
40
[ Fact ]
47
- public void CreateTagHelper_ActivatesProvidedTagHelperType_Property ( )
41
+ public void CreateTagHelper_CreatesProvidedTagHelperType ( )
48
42
{
49
43
// Arrange
50
44
var instance = CreateTestRazorPage ( ) ;
51
45
52
46
// Act
53
- var tagHelper = instance . CreateTagHelper < ActivateAttributeServiceTagHelper > ( ) ;
47
+ var tagHelper = instance . CreateTagHelper < NoServiceTagHelper > ( ) ;
54
48
55
49
// Assert
56
- Assert . NotNull ( tagHelper . ActivatedService ) ;
50
+ Assert . NotNull ( tagHelper ) ;
57
51
}
58
52
59
53
[ Fact ]
60
- public void CreateTagHelper_ActivatesProvidedTagHelperType_PropertyAndConstructor ( )
54
+ public void CreateTagHelper_ActivatesProvidedTagHelperType ( )
61
55
{
62
56
// Arrange
63
57
var instance = CreateTestRazorPage ( ) ;
64
58
65
59
// Act
66
- var tagHelper = instance . CreateTagHelper < AttributeConstructorServiceTagHelper > ( ) ;
60
+ var tagHelper = instance . CreateTagHelper < ServiceTagHelper > ( ) ;
67
61
68
62
// Assert
69
63
Assert . NotNull ( tagHelper . ActivatedService ) ;
70
- Assert . NotNull ( tagHelper . PassedInService ) ;
71
64
}
72
65
73
66
[ Fact ]
@@ -94,7 +87,7 @@ public void CreateTagHelper_ProvidesTagHelperTypeWithViewContextAndActivates()
94
87
95
88
// Assert
96
89
Assert . NotNull ( tagHelper . ViewContext ) ;
97
- Assert . NotNull ( tagHelper . PassedInService ) ;
90
+ Assert . NotNull ( tagHelper . ActivatedService ) ;
98
91
}
99
92
100
93
private static TestRazorPage CreateTestRazorPage ( )
@@ -138,33 +131,10 @@ private class NoServiceTagHelper : TagHelper
138
131
{
139
132
}
140
133
141
- private class ConstructorServiceTagHelper : TagHelper
142
- {
143
- public MyService PassedInService { get ; set ; }
144
-
145
- public ConstructorServiceTagHelper ( MyService service )
146
- {
147
- PassedInService = service ;
148
- }
149
- }
150
-
151
- private class ActivateAttributeServiceTagHelper : TagHelper
152
- {
153
- [ Activate ]
154
- public MyService ActivatedService { get ; set ; }
155
- }
156
-
157
- private class AttributeConstructorServiceTagHelper : TagHelper
134
+ private class ServiceTagHelper : TagHelper
158
135
{
159
136
[ Activate ]
160
137
public MyService ActivatedService { get ; set ; }
161
-
162
- public MyService PassedInService { get ; set ; }
163
-
164
- public AttributeConstructorServiceTagHelper ( MyService service )
165
- {
166
- PassedInService = service ;
167
- }
168
138
}
169
139
170
140
private class ViewContextTagHelper : TagHelper
@@ -175,11 +145,14 @@ private class ViewContextTagHelper : TagHelper
175
145
176
146
private class ViewContextServiceTagHelper : ViewContextTagHelper
177
147
{
178
- public MyService PassedInService { get ; set ; }
148
+ [ Activate ]
149
+ public MyService ActivatedService { get ; set ; }
150
+ }
179
151
180
- public ViewContextServiceTagHelper ( MyService service )
152
+ private class NoParameterlessConstructor : TagHelper
153
+ {
154
+ public NoParameterlessConstructor ( string a )
181
155
{
182
- PassedInService = service ;
183
156
}
184
157
}
185
158
0 commit comments