@@ -29,8 +29,8 @@ public void RemoveExternalMembers()
2929 string member1 = "user1@lithnet.io" ;
3030 string member2 = "user2@lithnet.io" ;
3131
32- GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member1 } ) ;
33- GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member2 } ) ;
32+ GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member1 } ) ;
33+ GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member2 } ) ;
3434
3535 Thread . Sleep ( 1000 ) ;
3636
@@ -75,7 +75,7 @@ public void TestExternalManagerIsExternalMember()
7575 Thread . Sleep ( 1000 ) ;
7676
7777 string member2 = "test@test.com" ;
78- GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member2 , Role = "MANAGER" } ) ;
78+ GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member2 , Role = "MANAGER" } ) ;
7979
8080 Thread . Sleep ( 1000 ) ;
8181
@@ -108,7 +108,7 @@ public void TestManagerIsMember()
108108
109109 user = UserTests . CreateUser ( ) ;
110110
111- GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = user . PrimaryEmail , Role = "MANAGER" } ) ;
111+ GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = user . PrimaryEmail , Role = "MANAGER" } ) ;
112112
113113 Thread . Sleep ( 1000 ) ;
114114
@@ -139,7 +139,7 @@ public void TestExternalOwnerIsExternalManagerAndExternalMember()
139139 Thread . Sleep ( 1000 ) ;
140140
141141 string member2 = "test@test.com" ;
142- GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member2 , Role = "OWNER" } ) ;
142+ GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member2 , Role = "OWNER" } ) ;
143143
144144 Thread . Sleep ( 1000 ) ;
145145
@@ -174,7 +174,7 @@ public void TestOwnerIsManagerAndMember()
174174
175175 user = UserTests . CreateUser ( ) ;
176176
177- GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = user . PrimaryEmail , Role = "OWNER" } ) ;
177+ GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = user . PrimaryEmail , Role = "OWNER" } ) ;
178178
179179 Thread . Sleep ( 1000 ) ;
180180
@@ -218,7 +218,7 @@ public void DowngradeManagerToMember()
218218 cs . ObjectType = SchemaConstants . Group ;
219219 cs . AnchorAttributes . Add ( AnchorAttribute . Create ( "id" , e . Email ) ) ;
220220
221- cs . AttributeChanges . Add ( AttributeChange . CreateAttributeUpdate ( "externalManager" , new List < ValueChange > ( ) { new ValueChange ( member2 , ValueModificationType . Delete ) } ) ) ;
221+ cs . AttributeChanges . Add ( AttributeChange . CreateAttributeUpdate ( "externalManager" , new List < ValueChange > ( ) { new ValueChange ( member2 , ValueModificationType . Delete ) } ) ) ;
222222
223223 CSEntryChangeResult result =
224224 ExportProcessor . PutCSEntryChange ( cs , UnitTestControl . Schema . GetSchema ( ) . Types [ SchemaConstants . Group ] , UnitTestControl . TestParameters ) ;
@@ -234,7 +234,7 @@ public void DowngradeManagerToMember()
234234 Assert . AreEqual ( 0 , membership . ExternalManagers . Count ) ;
235235 Assert . AreEqual ( 0 , membership . Managers . Count ) ;
236236 Assert . AreEqual ( 0 , membership . Members . Count ) ;
237- CollectionAssert . AreEquivalent ( new string [ ] { member2 } , membership . ExternalMembers . ToArray ( ) ) ;
237+ CollectionAssert . AreEquivalent ( new string [ ] { member2 } , membership . ExternalMembers . ToArray ( ) ) ;
238238 }
239239 finally
240240 {
@@ -243,6 +243,60 @@ public void DowngradeManagerToMember()
243243
244244 }
245245
246+ [ TestMethod ]
247+ public void DowngradeManagersToMembers ( )
248+ {
249+ Group e = null ;
250+ User member1 = null ;
251+ User member2 = null ;
252+ User member3 = null ;
253+ User member4 = null ;
254+
255+ try
256+ {
257+ e = UnitTestControl . CreateGroup ( ) ;
258+
259+ member1 = UserTests . CreateUser ( ) ;
260+ member2 = UserTests . CreateUser ( ) ;
261+ member3 = UserTests . CreateUser ( ) ;
262+ member4 = UserTests . CreateUser ( ) ;
263+
264+ GroupMemberRequestFactory . AddMember ( e . Email , member1 . PrimaryEmail , "MANAGER" ) ;
265+ GroupMemberRequestFactory . AddMember ( e . Email , member2 . PrimaryEmail , "MANAGER" ) ;
266+ GroupMemberRequestFactory . AddMember ( e . Email , member3 . PrimaryEmail , "MEMBER" ) ;
267+ GroupMemberRequestFactory . AddMember ( e . Email , member4 . PrimaryEmail , "MEMBER" ) ;
268+ Thread . Sleep ( 1000 ) ;
269+
270+ CSEntryChange cs = CSEntryChange . Create ( ) ;
271+ cs . ObjectModificationType = ObjectModificationType . Update ;
272+ cs . DN = e . Email ;
273+ cs . ObjectType = SchemaConstants . Group ;
274+ cs . AnchorAttributes . Add ( AnchorAttribute . Create ( "id" , e . Email ) ) ;
275+
276+ cs . AttributeChanges . Add ( AttributeChange . CreateAttributeDelete ( "manager" ) ) ;
277+
278+ CSEntryChangeResult result =
279+ ExportProcessor . PutCSEntryChange ( cs , UnitTestControl . Schema . GetSchema ( ) . Types [ SchemaConstants . Group ] , UnitTestControl . TestParameters ) ;
280+
281+ if ( result . ErrorCode != MAExportError . Success )
282+ {
283+ Assert . Fail ( result . ErrorName ) ;
284+ }
285+
286+ Thread . Sleep ( 1000 ) ;
287+ GroupMembership membership = GroupMemberRequestFactory . GetMembership ( cs . DN ) ;
288+
289+ Assert . AreEqual ( 0 , membership . ExternalManagers . Count ) ;
290+ Assert . AreEqual ( 0 , membership . Managers . Count ) ;
291+ Assert . AreEqual ( 0 , membership . ExternalMembers . Count ) ;
292+ CollectionAssert . AreEquivalent ( new string [ ] { member1 . PrimaryEmail , member2 . PrimaryEmail , member3 . PrimaryEmail , member4 . PrimaryEmail } , membership . Members . ToArray ( ) ) ;
293+ }
294+ finally
295+ {
296+ UnitTestControl . Cleanup ( e , member1 , member2 , member3 , member4 ) ;
297+ }
298+ }
299+
246300 [ TestMethod ]
247301 public void DowngradeOwnerToManager ( )
248302 {
@@ -265,7 +319,7 @@ public void DowngradeOwnerToManager()
265319 cs . ObjectType = SchemaConstants . Group ;
266320 cs . AnchorAttributes . Add ( AnchorAttribute . Create ( "id" , e . Id ) ) ;
267321
268- cs . AttributeChanges . Add ( AttributeChange . CreateAttributeUpdate ( "externalOwner" , new List < ValueChange > ( ) { new ValueChange ( member2 , ValueModificationType . Delete ) } ) ) ;
322+ cs . AttributeChanges . Add ( AttributeChange . CreateAttributeUpdate ( "externalOwner" , new List < ValueChange > ( ) { new ValueChange ( member2 , ValueModificationType . Delete ) } ) ) ;
269323
270324 CSEntryChangeResult result =
271325 ExportProcessor . PutCSEntryChange ( cs , UnitTestControl . Schema . GetSchema ( ) . Types [ SchemaConstants . Group ] , UnitTestControl . TestParameters ) ;
@@ -282,7 +336,7 @@ public void DowngradeOwnerToManager()
282336 Assert . AreEqual ( 0 , membership . Owners . Count ) ;
283337 Assert . AreEqual ( 0 , membership . Managers . Count ) ;
284338 Assert . AreEqual ( 0 , membership . Members . Count ) ;
285- CollectionAssert . AreEquivalent ( new string [ ] { member2 } , membership . ExternalManagers . ToArray ( ) ) ;
339+ CollectionAssert . AreEquivalent ( new string [ ] { member2 } , membership . ExternalManagers . ToArray ( ) ) ;
286340 }
287341 finally
288342 {
@@ -301,7 +355,7 @@ public void UpgradeMemberToManager()
301355 Thread . Sleep ( 1000 ) ;
302356
303357 string member2 = "test@test.com" ;
304- GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member2 } ) ;
358+ GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member2 } ) ;
305359
306360 Thread . Sleep ( 1000 ) ;
307361
@@ -311,7 +365,7 @@ public void UpgradeMemberToManager()
311365 cs . ObjectType = SchemaConstants . Group ;
312366 cs . AnchorAttributes . Add ( AnchorAttribute . Create ( "id" , e . Id ) ) ;
313367
314- cs . AttributeChanges . Add ( AttributeChange . CreateAttributeUpdate ( "externalManager" , new List < ValueChange > ( ) { new ValueChange ( member2 , ValueModificationType . Add ) } ) ) ;
368+ cs . AttributeChanges . Add ( AttributeChange . CreateAttributeUpdate ( "externalManager" , new List < ValueChange > ( ) { new ValueChange ( member2 , ValueModificationType . Add ) } ) ) ;
315369
316370 CSEntryChangeResult result =
317371 ExportProcessor . PutCSEntryChange ( cs , UnitTestControl . Schema . GetSchema ( ) . Types [ SchemaConstants . Group ] , UnitTestControl . TestParameters ) ;
@@ -323,7 +377,7 @@ public void UpgradeMemberToManager()
323377
324378 Thread . Sleep ( 1000 ) ;
325379
326- CollectionAssert . AreEquivalent ( new string [ ] { member2 } , GroupMemberRequestFactory . GetMembership ( cs . DN ) . ExternalManagers . ToArray ( ) ) ;
380+ CollectionAssert . AreEquivalent ( new string [ ] { member2 } , GroupMemberRequestFactory . GetMembership ( cs . DN ) . ExternalManagers . ToArray ( ) ) ;
327381 }
328382 finally
329383 {
@@ -342,7 +396,7 @@ public void UpgradeManagerToOwner()
342396 Thread . Sleep ( 1000 ) ;
343397
344398 string member2 = "test@test.com" ;
345- GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member2 , Role = "MANAGER" } ) ;
399+ GroupMemberRequestFactory . AddMember ( e . Email , new Member ( ) { Email = member2 , Role = "MANAGER" } ) ;
346400
347401 Thread . Sleep ( 1000 ) ;
348402
@@ -352,7 +406,7 @@ public void UpgradeManagerToOwner()
352406 cs . ObjectType = SchemaConstants . Group ;
353407 cs . AnchorAttributes . Add ( AnchorAttribute . Create ( "id" , e . Id ) ) ;
354408
355- cs . AttributeChanges . Add ( AttributeChange . CreateAttributeUpdate ( "externalOwner" , new List < ValueChange > ( ) { new ValueChange ( member2 , ValueModificationType . Add ) } ) ) ;
409+ cs . AttributeChanges . Add ( AttributeChange . CreateAttributeUpdate ( "externalOwner" , new List < ValueChange > ( ) { new ValueChange ( member2 , ValueModificationType . Add ) } ) ) ;
356410
357411 CSEntryChangeResult result =
358412 ExportProcessor . PutCSEntryChange ( cs , UnitTestControl . Schema . GetSchema ( ) . Types [ SchemaConstants . Group ] , UnitTestControl . TestParameters ) ;
@@ -364,7 +418,7 @@ public void UpgradeManagerToOwner()
364418
365419 Thread . Sleep ( 1000 ) ;
366420
367- CollectionAssert . AreEquivalent ( new string [ ] { member2 } , GroupMemberRequestFactory . GetMembership ( cs . DN ) . ExternalOwners . ToArray ( ) ) ;
421+ CollectionAssert . AreEquivalent ( new string [ ] { member2 } , GroupMemberRequestFactory . GetMembership ( cs . DN ) . ExternalOwners . ToArray ( ) ) ;
368422 }
369423 finally
370424 {
0 commit comments