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.
79 lines
2.8 KiB
79 lines
2.8 KiB
using Bit.Core.AdminConsole.Entities; |
|
using Bit.Core.AdminConsole.OrganizationFeatures.Organizations; |
|
using Bit.Core.Repositories; |
|
using Bit.Core.Services; |
|
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 OrganizationDisableCommandTests |
|
{ |
|
[Theory, BitAutoData] |
|
public async Task DisableAsync_WhenOrganizationEnabled_DisablesSuccessfully( |
|
Organization organization, |
|
DateTime expirationDate, |
|
SutProvider<OrganizationDisableCommand> sutProvider) |
|
{ |
|
organization.Enabled = true; |
|
sutProvider.GetDependency<IOrganizationRepository>() |
|
.GetByIdAsync(organization.Id) |
|
.Returns(organization); |
|
|
|
await sutProvider.Sut.DisableAsync(organization.Id, expirationDate); |
|
|
|
Assert.False(organization.Enabled); |
|
Assert.Equal(expirationDate, organization.ExpirationDate); |
|
|
|
await sutProvider.GetDependency<IOrganizationRepository>() |
|
.Received(1) |
|
.ReplaceAsync(organization); |
|
await sutProvider.GetDependency<IApplicationCacheService>() |
|
.Received(1) |
|
.UpsertOrganizationAbilityAsync(organization); |
|
} |
|
|
|
[Theory, BitAutoData] |
|
public async Task DisableAsync_WhenOrganizationNotFound_DoesNothing( |
|
Guid organizationId, |
|
DateTime expirationDate, |
|
SutProvider<OrganizationDisableCommand> sutProvider) |
|
{ |
|
sutProvider.GetDependency<IOrganizationRepository>() |
|
.GetByIdAsync(organizationId) |
|
.Returns((Organization)null); |
|
|
|
await sutProvider.Sut.DisableAsync(organizationId, expirationDate); |
|
|
|
await sutProvider.GetDependency<IOrganizationRepository>() |
|
.DidNotReceive() |
|
.ReplaceAsync(Arg.Any<Organization>()); |
|
await sutProvider.GetDependency<IApplicationCacheService>() |
|
.DidNotReceive() |
|
.UpsertOrganizationAbilityAsync(Arg.Any<Organization>()); |
|
} |
|
|
|
[Theory, BitAutoData] |
|
public async Task DisableAsync_WhenOrganizationAlreadyDisabled_DoesNothing( |
|
Organization organization, |
|
DateTime expirationDate, |
|
SutProvider<OrganizationDisableCommand> sutProvider) |
|
{ |
|
organization.Enabled = false; |
|
sutProvider.GetDependency<IOrganizationRepository>() |
|
.GetByIdAsync(organization.Id) |
|
.Returns(organization); |
|
|
|
await sutProvider.Sut.DisableAsync(organization.Id, expirationDate); |
|
|
|
await sutProvider.GetDependency<IOrganizationRepository>() |
|
.DidNotReceive() |
|
.ReplaceAsync(Arg.Any<Organization>()); |
|
await sutProvider.GetDependency<IApplicationCacheService>() |
|
.DidNotReceive() |
|
.UpsertOrganizationAbilityAsync(Arg.Any<Organization>()); |
|
} |
|
}
|
|
|