@ -1,6 +1,5 @@
using System.Security.Claims ;
using Bit.Api.Vault.AuthorizationHandlers.Collections ;
using Bit.Core ;
using Bit.Core.Context ;
using Bit.Core.Entities ;
using Bit.Core.Enums ;
@ -33,10 +32,7 @@ public class BulkCollectionAuthorizationHandlerTests
organization . Type = userType ;
organization . Permissions = new Permissions ( ) ;
// `LimitCollectonCreationDeletionSplit` feature flag state isn't
// relevant for this test. The flag is never checked for in this
// test. This is asserted below.
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , true , true ) ;
ArrangeOrganizationAbility ( sutProvider , organization , true , true ) ;
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Create } ,
@ -48,12 +44,11 @@ public class BulkCollectionAuthorizationHandlerTests
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . DidNotReceiveWithAnyArgs ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . True ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanCreateAsync_WhenUser_WithLimitCollectionCreationFalse_ WithLimitCollectionCreationDeletionSplitFeatureDisabled_ Success(
public async Task CanCreateAsync_WhenUser_WithLimitCollectionCreationFalse_ Success(
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < Collection > collections ,
CurrentContextOrganization organization )
@ -62,7 +57,7 @@ public class BulkCollectionAuthorizationHandlerTests
organization . Type = OrganizationUserType . User ;
ArrangeOrganizationAbility _WithLimitCollectionCreationDeletionSplitFeatureDisabled ( sutProvider , organization , false , false ) ;
ArrangeOrganizationAbility ( sutProvider , organization , false , false ) ;
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Create } ,
@ -71,49 +66,16 @@ public class BulkCollectionAuthorizationHandlerTests
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < IFeatureService > ( )
. IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit )
. Returns ( false ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . True ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanCreateAsync_WhenUser_WithLimitCollectionCreationFalse_WithLimitCollectionCreationDeletionSplitFeatureEnabled_Success (
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < Collection > collections ,
CurrentContextOrganization organization )
{
var actingUserId = Guid . NewGuid ( ) ;
organization . Type = OrganizationUserType . User ;
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , false , false ) ;
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Create } ,
new ClaimsPrincipal ( ) ,
collections ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < IFeatureService > ( )
. IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit )
. Returns ( true ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . True ( context . HasSucceeded ) ;
}
[Theory, CollectionCustomization]
[BitAutoData(OrganizationUserType.User)]
[BitAutoData(OrganizationUserType.Custom)]
public async Task CanCreateAsync_WhenMissingPermissions_ WithLimitCollectionCreationDeletionSplitFeatureDisabled_ NoSuccess(
public async Task CanCreateAsync_WhenMissingPermissions_NoSuccess (
OrganizationUserType userType ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < Collection > collections ,
@ -130,7 +92,7 @@ public class BulkCollectionAuthorizationHandlerTests
ManageUsers = false
} ;
ArrangeOrganizationAbility _WithLimitCollectionCreationDeletionSplitFeatureDisabled ( sutProvider , organization , true , true ) ;
ArrangeOrganizationAbility ( sutProvider , organization , true , true ) ;
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Create } ,
@ -140,61 +102,21 @@ public class BulkCollectionAuthorizationHandlerTests
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( false ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, CollectionCustomization]
[BitAutoData(OrganizationUserType.User)]
[BitAutoData(OrganizationUserType.Custom)]
public async Task CanCreateAsync_WhenMissingPermissions_WithLimitCollectionCreationDeletionSplitFeatureEnabled_NoSuccess (
OrganizationUserType userType ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < Collection > collections ,
CurrentContextOrganization organization )
{
var actingUserId = Guid . NewGuid ( ) ;
organization . Type = userType ;
organization . Permissions = new Permissions
{
EditAnyCollection = false ,
DeleteAnyCollection = false ,
ManageGroups = false ,
ManageUsers = false
} ;
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , true , true ) ;
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Create } ,
new ClaimsPrincipal ( ) ,
collections ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( true ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanCreateAsync_WhenMissingOrgAccess_ WithLimitCollectionCreationDeletionSplitDisabled_ NoSuccess(
public async Task CanCreateAsync_WhenMissingOrgAccess_NoSuccess (
Guid userId ,
CurrentContextOrganization organization ,
List < Collection > collections ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider )
{
collections . ForEach ( c = > c . OrganizationId = organization . Id ) ;
ArrangeOrganizationAbility _WithLimitCollectionCreationDeletionSplitFeatureDisabled ( sutProvider , organization , true , true ) ;
ArrangeOrganizationAbility ( sutProvider , organization , true , true ) ;
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Create } ,
@ -205,38 +127,9 @@ public class BulkCollectionAuthorizationHandlerTests
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( userId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( Arg . Any < Guid > ( ) ) . Returns ( ( CurrentContextOrganization ) null ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( false ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanCreateAsync_WhenMissingOrgAccess_WithLimitCollectionCreationDeletionSplitEnabled_NoSuccess (
Guid userId ,
CurrentContextOrganization organization ,
List < Collection > collections ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider )
{
collections . ForEach ( c = > c . OrganizationId = organization . Id ) ;
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , true , true ) ;
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Create } ,
new ClaimsPrincipal ( ) ,
collections
) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( userId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( Arg . Any < Guid > ( ) ) . Returns ( ( CurrentContextOrganization ) null ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( true ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
@ -1015,7 +908,7 @@ public class BulkCollectionAuthorizationHandlerTests
// `LimitCollectonCreationDeletionSplit` feature flag state isn't
// relevant for this test. The flag is never checked for in this
// test. This is asserted below.
ArrangeOrganizationAbility _WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , true , true ) ;
ArrangeOrganizationAbility ( sutProvider , organization , true , true ) ;
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Delete } ,
@ -1027,7 +920,6 @@ public class BulkCollectionAuthorizationHandlerTests
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . DidNotReceiveWithAnyArgs ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . True ( context . HasSucceeded ) ;
}
@ -1046,7 +938,7 @@ public class BulkCollectionAuthorizationHandlerTests
// `LimitCollectonCreationDeletionSplit` feature flag state isn't
// relevant for this test. The flag is never checked for in this
// test. This is asserted below.
ArrangeOrganizationAbility _WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , true , true ) ;
ArrangeOrganizationAbility ( sutProvider , organization , true , true ) ;
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Delete } ,
@ -1058,12 +950,11 @@ public class BulkCollectionAuthorizationHandlerTests
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . DidNotReceiveWithAnyArgs ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . True ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanDeleteAsync_WhenUser_LimitCollectionDeletionFalse_WithCanManagePermission_ WithLimitCollectionCreationDeletionSplitFeatureDisabled_ Success(
public async Task CanDeleteAsync_WhenUser_LimitCollectionDeletionFalse_WithCanManagePermission_ Success(
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
CurrentContextOrganization organization )
@ -1073,12 +964,11 @@ public class BulkCollectionAuthorizationHandlerTests
organization . Type = OrganizationUserType . User ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility _WithLimitCollectionCreationDeletionSplitFeatureDisabled ( sutProvider , organization , false , false ) ;
ArrangeOrganizationAbility ( sutProvider , organization , false , false ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( false ) ;
foreach ( var c in collections )
{
@ -1092,41 +982,6 @@ public class BulkCollectionAuthorizationHandlerTests
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . True ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanDeleteAsync_WhenUser_LimitCollectionDeletionFalse_WithCanManagePermission_WithLimitCollectionCreationDeletionSplitFeatureEnabled_Success (
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
CurrentContextOrganization organization )
{
var actingUserId = Guid . NewGuid ( ) ;
organization . Type = OrganizationUserType . User ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , false , false ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( true ) ;
foreach ( var c in collections )
{
c . Manage = true ;
}
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Delete } ,
new ClaimsPrincipal ( ) ,
collections ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . True ( context . HasSucceeded ) ;
}
@ -1134,7 +989,7 @@ public class BulkCollectionAuthorizationHandlerTests
[BitAutoData(OrganizationUserType.Admin)]
[BitAutoData(OrganizationUserType.Owner)]
[BitAutoData(OrganizationUserType.User)]
public async Task CanDeleteAsync_LimitCollectionDeletionFalse_AllowAdminAccessToAllCollectionItemsFalse_WithCanManagePermission_ WithLimitCollectionCreationDeletionSplitFeatureDisabled_ Success(
public async Task CanDeleteAsync_LimitCollectionDeletionFalse_AllowAdminAccessToAllCollectionItemsFalse_WithCanManagePermission_ Success(
OrganizationUserType userType ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
@ -1145,12 +1000,11 @@ public class BulkCollectionAuthorizationHandlerTests
organization . Type = userType ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility _WithLimitCollectionCreationDeletionSplitFeatureDisabled ( sutProvider , organization , false , false , false ) ;
ArrangeOrganizationAbility ( sutProvider , organization , false , false , false ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( false ) ;
foreach ( var c in collections )
{
@ -1164,15 +1018,13 @@ public class BulkCollectionAuthorizationHandlerTests
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . True ( context . HasSucceeded ) ;
}
[Theory, CollectionCustomization]
[BitAutoData(OrganizationUserType.Admin)]
[BitAutoData(OrganizationUserType.Owner)]
[BitAutoData(OrganizationUserType.User)]
public async Task CanDeleteAsync_LimitCollectionDeletionFalse_AllowAdminAccessToAllCollectionItemsFalse_WithCanManagePermission_WithLimitCollectionCreationDeletionSplitFeatureEnabled_Success (
public async Task CanDeleteAsync_WhenAdminOrOwner_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItemsFalse_WithCanManagePermission_Success (
OrganizationUserType userType ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
@ -1183,12 +1035,11 @@ public class BulkCollectionAuthorizationHandlerTests
organization . Type = userType ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility _WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , false, fals e, false ) ;
ArrangeOrganizationAbility ( sutProvider , organization , true, tru e, false ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( true ) ;
foreach ( var c in collections )
{
@ -1202,14 +1053,13 @@ public class BulkCollectionAuthorizationHandlerTests
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . True ( context . HasSucceeded ) ;
}
[Theory, CollectionCustomization]
[BitAutoData(OrganizationUserType.Admin)]
[BitAutoData(OrganizationUserType.Owner)]
public async Task CanDeleteAsync_WhenAdminOrOwner_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItemsFalse_With CanManagePermission_WithLimitCollectionCreationDeletionSplitFeatureDisabled_Success (
public async Task CanDeleteAsync_WhenAdminOrOwner_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItemsFalse_With outCanManagePermission_Failure (
OrganizationUserType userType ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
@ -1220,87 +1070,12 @@ public class BulkCollectionAuthorizationHandlerTests
organization . Type = userType ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureDisabled ( sutProvider , organization , true , true , false ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( false ) ;
foreach ( var c in collections )
{
c . Manage = true ;
}
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Delete } ,
new ClaimsPrincipal ( ) ,
collections ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . True ( context . HasSucceeded ) ;
}
[Theory, CollectionCustomization]
[BitAutoData(OrganizationUserType.Admin)]
[BitAutoData(OrganizationUserType.Owner)]
public async Task CanDeleteAsync_WhenAdminOrOwner_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItemsFalse_WithCanManagePermission_WithLimitCollectionCreationDeletionSplitFeatureEnabled_Success (
OrganizationUserType userType ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
CurrentContextOrganization organization )
{
var actingUserId = Guid . NewGuid ( ) ;
organization . Type = userType ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , true , true , false ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( true ) ;
foreach ( var c in collections )
{
c . Manage = true ;
}
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Delete } ,
new ClaimsPrincipal ( ) ,
collections ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . True ( context . HasSucceeded ) ;
}
[Theory, CollectionCustomization]
[BitAutoData(OrganizationUserType.Admin)]
[BitAutoData(OrganizationUserType.Owner)]
public async Task CanDeleteAsync_WhenAdminOrOwner_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItemsFalse_WithoutCanManagePermission_WithLimitCollectionCreationDeletionSplitFeatureDisabled_Failure (
OrganizationUserType userType ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
CurrentContextOrganization organization )
{
var actingUserId = Guid . NewGuid ( ) ;
organization . Type = userType ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureDisabled ( sutProvider , organization , true , true , false ) ;
ArrangeOrganizationAbility ( sutProvider , organization , true , true , false ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( false ) ;
foreach ( var c in collections )
{
@ -1314,50 +1089,11 @@ public class BulkCollectionAuthorizationHandlerTests
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, CollectionCustomization]
[BitAutoData(OrganizationUserType.Admin)]
[BitAutoData(OrganizationUserType.Owner)]
public async Task CanDeleteAsync_WhenAdminOrOwner_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItemsFalse_WithoutCanManagePermission_WithLimitCollectionCreationDeletionSplitFeatureEnabled_Failure (
OrganizationUserType userType ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
CurrentContextOrganization organization )
{
var actingUserId = Guid . NewGuid ( ) ;
organization . Type = userType ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , true , true , false ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( true ) ;
foreach ( var c in collections )
{
c . Manage = false ;
}
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Delete } ,
new ClaimsPrincipal ( ) ,
collections ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanDeleteAsync_WhenUser_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItemsTrue_ WithLimitCollectionCreationDeletionSplitFeatureDisabled_ Failure(
public async Task CanDeleteAsync_WhenUser_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItemsTrue_Failure (
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
CurrentContextOrganization organization )
@ -1367,13 +1103,12 @@ public class BulkCollectionAuthorizationHandlerTests
organization . Type = OrganizationUserType . User ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility _WithLimitCollectionCreationDeletionSplitFeatureDisabled ( sutProvider , organization , true , true ) ;
ArrangeOrganizationAbility ( sutProvider , organization , true , true ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( false ) ;
foreach ( var c in collections )
{
@ -1387,12 +1122,11 @@ public class BulkCollectionAuthorizationHandlerTests
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanDeleteAsync_WhenUser_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItems True_WithLimitCollectionCreationDeletionSplit Fe atureEnab led _Failure(
public async Task CanDeleteAsync_WhenUser_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItems Fals e_Failure(
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
CurrentContextOrganization organization )
@ -1402,13 +1136,12 @@ public class BulkCollectionAuthorizationHandlerTests
organization . Type = OrganizationUserType . User ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility _WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , true , tru e) ;
ArrangeOrganizationAbility ( sutProvider , organization , true , tru e, fals e) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( true ) ;
foreach ( var c in collections )
{
@ -1422,88 +1155,13 @@ public class BulkCollectionAuthorizationHandlerTests
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanDeleteAsync_WhenUser_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItemsFalse_WithLimitCollectionCreationDeletionSplitFeatureDisabled_Failure (
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
CurrentContextOrganization organization )
{
var actingUserId = Guid . NewGuid ( ) ;
organization . Type = OrganizationUserType . User ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureDisabled ( sutProvider , organization , true , true , false ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( )
. IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit )
. Returns ( false ) ;
foreach ( var c in collections )
{
c . Manage = true ;
}
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Delete } ,
new ClaimsPrincipal ( ) ,
collections ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanDeleteAsync_WhenUser_LimitCollectionDeletionTrue_AllowAdminAccessToAllCollectionItemsFalse_WithLimitCollectionCreationDeletionSplitFeatureEnabled_Failure (
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < CollectionDetails > collections ,
CurrentContextOrganization organization )
{
var actingUserId = Guid . NewGuid ( ) ;
organization . Type = OrganizationUserType . User ;
organization . Permissions = new Permissions ( ) ;
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , true , true , false ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . GetManyByUserIdAsync ( actingUserId ) . Returns ( collections ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( )
. IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit )
. Returns ( true ) ;
foreach ( var c in collections )
{
c . Manage = true ;
}
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Delete } ,
new ClaimsPrincipal ( ) ,
collections ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, CollectionCustomization]
[BitAutoData(OrganizationUserType.User)]
[BitAutoData(OrganizationUserType.Custom)]
public async Task CanDeleteAsync_WhenMissingPermissions_ WithLimitCollectionCreationDeletionSplitFeatureDisabled_ NoSuccess(
public async Task CanDeleteAsync_WhenMissingPermissions_NoSuccess (
OrganizationUserType userType ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < Collection > collections ,
@ -1520,7 +1178,7 @@ public class BulkCollectionAuthorizationHandlerTests
ManageUsers = false
} ;
ArrangeOrganizationAbility _WithLimitCollectionCreationDeletionSplitFeatureDisabled ( sutProvider , organization , true , true ) ;
ArrangeOrganizationAbility ( sutProvider , organization , true , true ) ;
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Delete } ,
@ -1530,54 +1188,14 @@ public class BulkCollectionAuthorizationHandlerTests
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( false ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, CollectionCustomization]
[BitAutoData(OrganizationUserType.User)]
[BitAutoData(OrganizationUserType.Custom)]
public async Task CanDeleteAsync_WhenMissingPermissions_WithLimitCollectionCreationDeletionSplitFeatureEnabled_NoSuccess (
OrganizationUserType userType ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < Collection > collections ,
CurrentContextOrganization organization )
{
var actingUserId = Guid . NewGuid ( ) ;
organization . Type = userType ;
organization . Permissions = new Permissions
{
EditAnyCollection = false ,
DeleteAnyCollection = false ,
ManageGroups = false ,
ManageUsers = false
} ;
ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureEnabled ( sutProvider , organization , true , true ) ;
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Delete } ,
new ClaimsPrincipal ( ) ,
collections ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( organization . Id ) . Returns ( organization ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( true ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanDeleteAsync_WhenMissingOrgAccess_ WithLimitCollectionCreationDeletionSplitFeatureDisabled_ NoSuccess(
public async Task CanDeleteAsync_WhenMissingOrgAccess_NoSuccess (
Guid userId ,
ICollection < Collection > collections ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider )
@ -1591,34 +1209,9 @@ public class BulkCollectionAuthorizationHandlerTests
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( userId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( Arg . Any < Guid > ( ) ) . Returns ( ( CurrentContextOrganization ) null ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( false ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task CanDeleteAsync_WhenMissingOrgAccess_WithLimitCollectionCreationDeletionSplitFeatureEnabled_NoSuccess (
Guid userId ,
ICollection < Collection > collections ,
SutProvider < BulkCollectionAuthorizationHandler > sutProvider )
{
var context = new AuthorizationHandlerContext (
new [ ] { BulkCollectionOperations . Delete } ,
new ClaimsPrincipal ( ) ,
collections
) ;
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( userId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( Arg . Any < Guid > ( ) ) . Returns ( ( CurrentContextOrganization ) null ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( false ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( true ) ;
await sutProvider . Sut . HandleAsync ( context ) ;
sutProvider . GetDependency < IFeatureService > ( ) . Received ( 1 ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
Assert . False ( context . HasSucceeded ) ;
}
@ -1639,7 +1232,6 @@ public class BulkCollectionAuthorizationHandlerTests
await sutProvider . Sut . HandleAsync ( context ) ;
Assert . True ( context . HasFailed ) ;
sutProvider . GetDependency < ICollectionRepository > ( ) . DidNotReceiveWithAnyArgs ( ) ;
sutProvider . GetDependency < IFeatureService > ( ) . DidNotReceiveWithAnyArgs ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
}
[Theory, BitAutoData, CollectionCustomization]
@ -1663,66 +1255,10 @@ public class BulkCollectionAuthorizationHandlerTests
var exception = await Assert . ThrowsAsync < BadRequestException > ( ( ) = > sutProvider . Sut . HandleAsync ( context ) ) ;
Assert . Equal ( "Requested collections must belong to the same organization." , exception . Message ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . DidNotReceiveWithAnyArgs ( ) . GetOrganization ( default ) ;
sutProvider . GetDependency < IFeatureService > ( ) . DidNotReceiveWithAnyArgs ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) ;
}
[Theory, BitAutoData, CollectionCustomization]
public async Task HandleRequirementAsync_Provider_WithLimitCollectionCreationDeletionSplitFeatureDisabled_Success (
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < Collection > collections )
{
var actingUserId = Guid . NewGuid ( ) ;
var orgId = collections . First ( ) . OrganizationId ;
var organizationAbilities = new Dictionary < Guid , OrganizationAbility >
{
{ collections . First ( ) . OrganizationId ,
new OrganizationAbility
{
LimitCollectionCreationDeletion = true ,
AllowAdminAccessToAllCollectionItems = true
}
}
} ;
var operationsToTest = new [ ]
{
BulkCollectionOperations . Create ,
BulkCollectionOperations . Read ,
BulkCollectionOperations . ReadAccess ,
BulkCollectionOperations . Update ,
BulkCollectionOperations . ModifyUserAccess ,
BulkCollectionOperations . ModifyGroupAccess ,
BulkCollectionOperations . Delete ,
} ;
foreach ( var op in operationsToTest )
{
sutProvider . GetDependency < ICurrentContext > ( ) . UserId . Returns ( actingUserId ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . GetOrganization ( orgId ) . Returns ( ( CurrentContextOrganization ) null ) ;
sutProvider . GetDependency < IApplicationCacheService > ( ) . GetOrganizationAbilitiesAsync ( )
. Returns ( organizationAbilities ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( true ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( false ) ;
var context = new AuthorizationHandlerContext (
new [ ] { op } ,
new ClaimsPrincipal ( ) ,
collections
) ;
await sutProvider . Sut . HandleAsync ( context ) ;
Assert . True ( context . HasSucceeded ) ;
await sutProvider . GetDependency < ICurrentContext > ( ) . Received ( ) . ProviderUserForOrgAsync ( orgId ) ;
// Recreate the SUT to reset the mocks/dependencies between tests
sutProvider . Recreate ( ) ;
}
}
[Theory, BitAutoData, CollectionCustomization]
public async Task HandleRequirementAsync_Provider_WithLimitCollectionCreationDeletionSplitFeatureEnabled_Success (
public async Task HandleRequirementAsync_Provider_Success (
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
ICollection < Collection > collections )
{
@ -1759,7 +1295,6 @@ public class BulkCollectionAuthorizationHandlerTests
sutProvider . GetDependency < IApplicationCacheService > ( ) . GetOrganizationAbilitiesAsync ( )
. Returns ( organizationAbilities ) ;
sutProvider . GetDependency < ICurrentContext > ( ) . ProviderUserForOrgAsync ( Arg . Any < Guid > ( ) ) . Returns ( true ) ;
sutProvider . GetDependency < IFeatureService > ( ) . IsEnabled ( FeatureFlagKeys . LimitCollectionCreationDeletionSplit ) . Returns ( true ) ;
var context = new AuthorizationHandlerContext (
new [ ] { op } ,
@ -1810,25 +1345,7 @@ public class BulkCollectionAuthorizationHandlerTests
await sutProvider . GetDependency < ICollectionRepository > ( ) . Received ( 1 ) . GetManyByUserIdAsync ( Arg . Any < Guid > ( ) ) ;
}
private static void ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureDisabled (
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
CurrentContextOrganization organization ,
bool limitCollectionCreation ,
bool limitCollectionDeletion ,
bool allowAdminAccessToAllCollectionItems = true )
{
var organizationAbility = new OrganizationAbility ( ) ;
organizationAbility . Id = organization . Id ;
organizationAbility . LimitCollectionCreationDeletion = limitCollectionCreation | | limitCollectionDeletion ;
organizationAbility . AllowAdminAccessToAllCollectionItems = allowAdminAccessToAllCollectionItems ;
sutProvider . GetDependency < IApplicationCacheService > ( ) . GetOrganizationAbilityAsync ( organizationAbility . Id )
. Returns ( organizationAbility ) ;
}
private static void ArrangeOrganizationAbility_WithLimitCollectionCreationDeletionSplitFeatureEnabled (
private static void ArrangeOrganizationAbility (
SutProvider < BulkCollectionAuthorizationHandler > sutProvider ,
CurrentContextOrganization organization ,
bool limitCollectionCreation ,