@@ -9,15 +9,11 @@ namespace ReactiveDomain.PolicyStorage.Tests
9
9
{
10
10
public class with_policy_user
11
11
{
12
- Guid _policyId = Guid . NewGuid ( ) ;
13
- Guid _userId = Guid . NewGuid ( ) ;
14
- Guid _id = Guid . NewGuid ( ) ;
12
+ private readonly Guid _policyId = Guid . NewGuid ( ) ;
13
+ private readonly Guid _userId = Guid . NewGuid ( ) ;
14
+ private readonly Guid _id = Guid . NewGuid ( ) ;
15
15
private readonly ICorrelatedMessage _command = MessageBuilder . New ( ( ) => new TestMessages . RootCommand ( ) ) ;
16
16
17
- public with_policy_user ( )
18
- {
19
-
20
- }
21
17
[ Fact ]
22
18
public void can_create_policy_user ( )
23
19
{
@@ -27,8 +23,7 @@ public void can_create_policy_user()
27
23
_policyId ,
28
24
_userId ,
29
25
false ,
30
- _command )
31
- { } ;
26
+ _command ) ;
32
27
33
28
var events = user . TakeEvents ( ) ;
34
29
Assert . Collection (
@@ -57,8 +52,7 @@ public void can_add_role()
57
52
_policyId ,
58
53
_userId ,
59
54
false ,
60
- _command )
61
- { } ;
55
+ _command ) ;
62
56
63
57
user . TakeEvents ( ) ;
64
58
//add role
@@ -102,8 +96,7 @@ public void can_remove_role()
102
96
_policyId ,
103
97
_userId ,
104
98
false ,
105
- _command )
106
- { } ;
99
+ _command ) ;
107
100
108
101
109
102
//add role
@@ -145,10 +138,10 @@ public void can_remove_role()
145
138
[ Fact ]
146
139
public void can_deactivate ( )
147
140
{
148
- Guid role1_Id = Guid . NewGuid ( ) ;
149
- string role1_name = "role1" ;
150
- Guid role2_Id = Guid . NewGuid ( ) ;
151
- string role2_name = "role2" ;
141
+ Guid role1Id = Guid . NewGuid ( ) ;
142
+ string role1Name = "role1" ;
143
+ Guid role2Id = Guid . NewGuid ( ) ;
144
+ string role2Name = "role2" ;
152
145
153
146
var user = new PolicyUser (
154
147
_id ,
@@ -158,8 +151,8 @@ public void can_deactivate()
158
151
_command )
159
152
{ } ;
160
153
//add role
161
- user . AddRole ( role1_name , role1_Id ) ;
162
- user . AddRole ( role2_name , role2_Id ) ;
154
+ user . AddRole ( role1Name , role1Id ) ;
155
+ user . AddRole ( role2Name , role2Id ) ;
163
156
user . TakeEvents ( ) ;
164
157
165
158
//deactivate
@@ -184,8 +177,8 @@ public void can_deactivate()
184
177
if ( e is PolicyUserMsgs . RoleRemoved removed )
185
178
{
186
179
Assert . Equal ( _id , removed . PolicyUserId ) ;
187
- Assert . Equal ( role1_Id , removed . RoleId ) ;
188
- Assert . Equal ( role1_name , removed . RoleName ) ;
180
+ Assert . Equal ( role1Id , removed . RoleId ) ;
181
+ Assert . Equal ( role1Name , removed . RoleName ) ;
189
182
}
190
183
else
191
184
{
@@ -197,8 +190,8 @@ public void can_deactivate()
197
190
if ( e is PolicyUserMsgs . RoleRemoved removed )
198
191
{
199
192
Assert . Equal ( _id , removed . PolicyUserId ) ;
200
- Assert . Equal ( role2_Id , removed . RoleId ) ;
201
- Assert . Equal ( role2_name , removed . RoleName ) ;
193
+ Assert . Equal ( role2Id , removed . RoleId ) ;
194
+ Assert . Equal ( role2Name , removed . RoleName ) ;
202
195
}
203
196
else
204
197
{
@@ -215,21 +208,20 @@ public void can_deactivate()
215
208
[ Fact ]
216
209
public void can_reactivate ( )
217
210
{
218
- Guid role1_Id = Guid . NewGuid ( ) ;
219
- string role1_name = "role1" ;
220
- Guid role2_Id = Guid . NewGuid ( ) ;
221
- string role2_name = "role2" ;
211
+ Guid role1Id = Guid . NewGuid ( ) ;
212
+ string role1Name = "role1" ;
213
+ Guid role2Id = Guid . NewGuid ( ) ;
214
+ string role2Name = "role2" ;
222
215
223
216
var user = new PolicyUser (
224
217
_id ,
225
218
_policyId ,
226
219
_userId ,
227
220
false ,
228
- _command )
229
- { } ;
221
+ _command ) ;
230
222
//add roles
231
- user . AddRole ( role1_name , role1_Id ) ;
232
- user . AddRole ( role2_name , role2_Id ) ;
223
+ user . AddRole ( role1Name , role1Id ) ;
224
+ user . AddRole ( role2Name , role2Id ) ;
233
225
//deactivate
234
226
user . Deactivate ( ) ;
235
227
user . TakeEvents ( ) ;
@@ -256,8 +248,8 @@ public void can_reactivate()
256
248
if ( e is PolicyUserMsgs . RoleAdded added )
257
249
{
258
250
Assert . Equal ( _id , added . PolicyUserId ) ;
259
- Assert . Equal ( role1_Id , added . RoleId ) ;
260
- Assert . Equal ( role1_name , added . RoleName ) ;
251
+ Assert . Equal ( role1Id , added . RoleId ) ;
252
+ Assert . Equal ( role1Name , added . RoleName ) ;
261
253
}
262
254
else
263
255
{
@@ -269,8 +261,8 @@ public void can_reactivate()
269
261
if ( e is PolicyUserMsgs . RoleAdded added )
270
262
{
271
263
Assert . Equal ( _id , added . PolicyUserId ) ;
272
- Assert . Equal ( role2_Id , added . RoleId ) ;
273
- Assert . Equal ( role2_name , added . RoleName ) ;
264
+ Assert . Equal ( role2Id , added . RoleId ) ;
265
+ Assert . Equal ( role2Name , added . RoleName ) ;
274
266
}
275
267
else
276
268
{
@@ -283,5 +275,50 @@ public void can_reactivate()
283
275
events = user . TakeEvents ( ) ;
284
276
Assert . Empty ( events ) ;
285
277
}
278
+
279
+ [ Fact ]
280
+ public void role_names_are_case_insensitive ( )
281
+ {
282
+ var roleId = Guid . NewGuid ( ) ;
283
+ const string roleName = "admin" ;
284
+ const string roleName2 = "Admin" ;
285
+
286
+ var user = new PolicyUser (
287
+ _id ,
288
+ _policyId ,
289
+ _userId ,
290
+ false ,
291
+ _command ) ;
292
+ user . AddRole ( roleName , roleId ) ;
293
+ user . AddRole ( roleName2 , roleId ) ; // case-insensitive, idempotent
294
+ user . RemoveRole ( roleName2 , roleId ) ; // remove using same ID, different case
295
+ var events = user . TakeEvents ( ) ;
296
+ Assert . Collection (
297
+ events ,
298
+ e => Assert . IsType < PolicyUserMsgs . PolicyUserAdded > ( e ) ,
299
+ e => Assert . IsType < PolicyUserMsgs . RoleAdded > ( e ) ,
300
+ e => Assert . IsType < PolicyUserMsgs . RoleRemoved > ( e ) ) ;
301
+ }
302
+
303
+ [ Fact ]
304
+ public void cannot_add_same_named_role_with_different_id ( )
305
+ {
306
+ var roleId = Guid . NewGuid ( ) ;
307
+ const string roleName = "admin" ;
308
+
309
+ var user = new PolicyUser (
310
+ _id ,
311
+ _policyId ,
312
+ _userId ,
313
+ false ,
314
+ _command ) ;
315
+ user . AddRole ( roleName , roleId ) ;
316
+ Assert . Throws < ArgumentException > ( ( ) => user . AddRole ( roleName , Guid . NewGuid ( ) ) ) ;
317
+ var events = user . TakeEvents ( ) ;
318
+ Assert . Collection (
319
+ events ,
320
+ e => Assert . IsType < PolicyUserMsgs . PolicyUserAdded > ( e ) ,
321
+ e => Assert . IsType < PolicyUserMsgs . RoleAdded > ( e ) ) ;
322
+ }
286
323
}
287
324
}
0 commit comments