You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
2.3 KiB
53 lines
2.3 KiB
using Bit.Core.AdminConsole.Entities; |
|
using Bit.Core.AdminConsole.OrganizationFeatures.Organizations; |
|
using Bit.Core.Auth.Entities; |
|
using Bit.Core.Auth.Enums; |
|
using Bit.Core.Auth.Models.Data; |
|
using Bit.Core.Auth.Repositories; |
|
using Bit.Core.Exceptions; |
|
using Bit.Core.Repositories; |
|
using Bit.Core.Services; |
|
using Bit.Core.Test.AutoFixture.OrganizationFixtures; |
|
using Bit.Test.Common.AutoFixture; |
|
using Bit.Test.Common.AutoFixture.Attributes; |
|
using NSubstitute; |
|
using Xunit; |
|
|
|
namespace Bit.Core.Test.AdminConsole.OrganizationFeatures.Organizations; |
|
|
|
[SutProviderCustomize] |
|
public class OrganizationDeleteCommandTests |
|
{ |
|
[Theory, PaidOrganizationCustomize, BitAutoData] |
|
public async Task Delete_Success(Organization organization, SutProvider<OrganizationDeleteCommand> sutProvider) |
|
{ |
|
var organizationRepository = sutProvider.GetDependency<IOrganizationRepository>(); |
|
var applicationCacheService = sutProvider.GetDependency<IApplicationCacheService>(); |
|
|
|
await sutProvider.Sut.DeleteAsync(organization); |
|
|
|
await organizationRepository.Received().DeleteAsync(organization); |
|
await applicationCacheService.Received().DeleteOrganizationAbilityAsync(organization.Id); |
|
} |
|
|
|
[Theory, PaidOrganizationCustomize, BitAutoData] |
|
public async Task Delete_Fails_KeyConnector(Organization organization, SutProvider<OrganizationDeleteCommand> sutProvider, |
|
SsoConfig ssoConfig) |
|
{ |
|
ssoConfig.Enabled = true; |
|
ssoConfig.SetData(new SsoConfigurationData { MemberDecryptionType = MemberDecryptionType.KeyConnector }); |
|
var ssoConfigRepository = sutProvider.GetDependency<ISsoConfigRepository>(); |
|
var organizationRepository = sutProvider.GetDependency<IOrganizationRepository>(); |
|
var applicationCacheService = sutProvider.GetDependency<IApplicationCacheService>(); |
|
|
|
ssoConfigRepository.GetByOrganizationIdAsync(organization.Id).Returns(ssoConfig); |
|
|
|
var exception = await Assert.ThrowsAsync<BadRequestException>( |
|
() => sutProvider.Sut.DeleteAsync(organization)); |
|
|
|
Assert.Contains("You cannot delete an Organization that is using Key Connector.", exception.Message); |
|
|
|
await organizationRepository.DidNotReceiveWithAnyArgs().DeleteAsync(default); |
|
await applicationCacheService.DidNotReceiveWithAnyArgs().DeleteOrganizationAbilityAsync(default); |
|
} |
|
}
|
|
|