7
7
using Microsoft . Extensions . Options ;
8
8
using Moq ;
9
9
using Xunit ;
10
+ using Microsoft . Extensions . Logging ;
10
11
11
12
namespace Microsoft . Extensions . Localization . Tests
12
13
{
@@ -19,8 +20,9 @@ public class TestResourceManagerStringLocalizerFactory : ResourceManagerStringLo
19
20
20
21
public TestResourceManagerStringLocalizerFactory (
21
22
IOptions < LocalizationOptions > localizationOptions ,
22
- ResourceLocationAttribute resourceLocationAttribute )
23
- : base ( localizationOptions )
23
+ ResourceLocationAttribute resourceLocationAttribute ,
24
+ ILoggerFactory loggerFactory )
25
+ : base ( localizationOptions , loggerFactory )
24
26
{
25
27
_resourceLocationAttribute = resourceLocationAttribute ;
26
28
}
@@ -50,12 +52,15 @@ public void Create_OverloadsProduceSameResult()
50
52
options . Setup ( o => o . Value ) . Returns ( locOptions ) ;
51
53
52
54
var resourceLocationAttribute = new ResourceLocationAttribute ( Path . Combine ( "My" , "Resources" ) ) ;
55
+ var loggerFactory = GetLoggerFactory ( ) ;
53
56
var typeFactory = new TestResourceManagerStringLocalizerFactory (
54
57
options . Object ,
55
- resourceLocationAttribute ) ;
58
+ resourceLocationAttribute ,
59
+ loggerFactory ) ;
56
60
var stringFactory = new TestResourceManagerStringLocalizerFactory (
57
61
options . Object ,
58
- resourceLocationAttribute ) ;
62
+ resourceLocationAttribute ,
63
+ loggerFactory ) ;
59
64
var type = typeof ( ResourceManagerStringLocalizerFactoryTest ) ;
60
65
var assemblyName = new AssemblyName ( type . GetTypeInfo ( ) . Assembly . FullName ) ;
61
66
@@ -75,7 +80,8 @@ public void Create_FromType_ReturnsCachedResultForSameType()
75
80
var locOptions = new LocalizationOptions ( ) ;
76
81
var options = new Mock < IOptions < LocalizationOptions > > ( ) ;
77
82
options . Setup ( o => o . Value ) . Returns ( locOptions ) ;
78
- var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object ) ;
83
+ var loggerFactory = GetLoggerFactory ( ) ;
84
+ var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object , loggerFactory : loggerFactory ) ;
79
85
80
86
// Act
81
87
var result1 = factory . Create ( typeof ( ResourceManagerStringLocalizerFactoryTest ) ) ;
@@ -92,7 +98,8 @@ public void Create_FromType_ReturnsNewResultForDifferentType()
92
98
var locOptions = new LocalizationOptions ( ) ;
93
99
var options = new Mock < IOptions < LocalizationOptions > > ( ) ;
94
100
options . Setup ( o => o . Value ) . Returns ( locOptions ) ;
95
- var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object ) ;
101
+ var loggerFactory = GetLoggerFactory ( ) ;
102
+ var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object , loggerFactory : loggerFactory ) ;
96
103
97
104
// Act
98
105
var result1 = factory . Create ( typeof ( ResourceManagerStringLocalizerFactoryTest ) ) ;
@@ -110,9 +117,11 @@ public void Create_FromType_ResourcesPathDirectorySeperatorToDot()
110
117
locOptions . ResourcesPath = Path . Combine ( "My" , "Resources" ) ;
111
118
var options = new Mock < IOptions < LocalizationOptions > > ( ) ;
112
119
options . Setup ( o => o . Value ) . Returns ( locOptions ) ;
120
+ var loggerFactory = GetLoggerFactory ( ) ;
113
121
var factory = new TestResourceManagerStringLocalizerFactory (
114
122
options . Object ,
115
- resourceLocationAttribute : null ) ;
123
+ resourceLocationAttribute : null ,
124
+ loggerFactory : loggerFactory ) ;
116
125
117
126
// Act
118
127
factory . Create ( typeof ( ResourceManagerStringLocalizerFactoryTest ) ) ;
@@ -128,7 +137,8 @@ public void Create_FromNameLocation_ReturnsCachedResultForSameNameLocation()
128
137
var locOptions = new LocalizationOptions ( ) ;
129
138
var options = new Mock < IOptions < LocalizationOptions > > ( ) ;
130
139
options . Setup ( o => o . Value ) . Returns ( locOptions ) ;
131
- var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object ) ;
140
+ var loggerFactory = GetLoggerFactory ( ) ;
141
+ var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object , loggerFactory : loggerFactory ) ;
132
142
var location = typeof ( ResourceManagerStringLocalizer ) . GetTypeInfo ( ) . Assembly . FullName ;
133
143
134
144
// Act
@@ -146,7 +156,8 @@ public void Create_FromNameLocation_ReturnsNewResultForDifferentName()
146
156
var locOptions = new LocalizationOptions ( ) ;
147
157
var options = new Mock < IOptions < LocalizationOptions > > ( ) ;
148
158
options . Setup ( o => o . Value ) . Returns ( locOptions ) ;
149
- var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object ) ;
159
+ var loggerFactory = GetLoggerFactory ( ) ;
160
+ var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object , loggerFactory : loggerFactory ) ;
150
161
var location = typeof ( ResourceManagerStringLocalizer ) . GetTypeInfo ( ) . Assembly . FullName ;
151
162
152
163
// Act
@@ -164,7 +175,8 @@ public void Create_FromNameLocation_ReturnsNewResultForDifferentLocation()
164
175
var locOptions = new LocalizationOptions ( ) ;
165
176
var options = new Mock < IOptions < LocalizationOptions > > ( ) ;
166
177
options . Setup ( o => o . Value ) . Returns ( locOptions ) ;
167
- var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object ) ;
178
+ var loggerFactory = GetLoggerFactory ( ) ;
179
+ var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object , loggerFactory : loggerFactory ) ;
168
180
var location1 = new AssemblyName ( typeof ( ResourceManagerStringLocalizer ) . GetTypeInfo ( ) . Assembly . FullName ) . Name ;
169
181
var location2 = new AssemblyName ( typeof ( ResourceManagerStringLocalizerFactoryTest ) . GetTypeInfo ( ) . Assembly . FullName ) . Name ;
170
182
@@ -184,9 +196,11 @@ public void Create_FromNameLocation_ResourcesPathDirectorySeparatorToDot()
184
196
locOptions . ResourcesPath = Path . Combine ( "My" , "Resources" ) ;
185
197
var options = new Mock < IOptions < LocalizationOptions > > ( ) ;
186
198
options . Setup ( o => o . Value ) . Returns ( locOptions ) ;
199
+ var loggerFactory = GetLoggerFactory ( ) ;
187
200
var factory = new TestResourceManagerStringLocalizerFactory (
188
201
options . Object ,
189
- resourceLocationAttribute : null ) ;
202
+ resourceLocationAttribute : null ,
203
+ loggerFactory : loggerFactory ) ;
190
204
191
205
// Act
192
206
var result1 = factory . Create ( "baseName" , location : "Microsoft.Extensions.Localization.Tests" ) ;
@@ -202,10 +216,22 @@ public void Create_FromNameLocation_NullLocationThrows()
202
216
var locOptions = new LocalizationOptions ( ) ;
203
217
var options = new Mock < IOptions < LocalizationOptions > > ( ) ;
204
218
options . Setup ( o => o . Value ) . Returns ( locOptions ) ;
205
- var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object ) ;
219
+ var loggerFactory = GetLoggerFactory ( ) ;
220
+ var factory = new ResourceManagerStringLocalizerFactory ( localizationOptions : options . Object , loggerFactory : loggerFactory ) ;
206
221
207
222
// Act & Assert
208
223
Assert . Throws < ArgumentNullException > ( ( ) => factory . Create ( "baseName" , location : null ) ) ;
209
224
}
225
+
226
+ private ILoggerFactory GetLoggerFactory ( )
227
+ {
228
+ var logger = new Mock < ILogger > ( ) ;
229
+ logger . Setup ( l => l . Log ( LogLevel . Information , It . IsAny < EventId > ( ) , new object ( ) , It . IsAny < Exception > ( ) , It . IsAny < Func < object , Exception , string > > ( ) ) ) ;
230
+
231
+ var mock = new Mock < ILoggerFactory > ( ) ;
232
+ mock . Setup ( f => f . CreateLogger ( It . IsAny < string > ( ) ) ) . Returns ( logger . Object ) ;
233
+
234
+ return mock . Object ;
235
+ }
210
236
}
211
237
}
0 commit comments