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.
83 lines
3.4 KiB
83 lines
3.4 KiB
using Bit.Core.AdminConsole.Entities; |
|
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.Interfaces; |
|
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.RevokeUser.v1; |
|
using Bit.Core.Context; |
|
using Bit.Core.Entities; |
|
using Bit.Core.Enums; |
|
using Bit.Core.Platform.Push; |
|
using Bit.Core.Repositories; |
|
using Bit.Core.Services; |
|
using Bit.Core.Test.AutoFixture.OrganizationUserFixtures; |
|
using Bit.Test.Common.AutoFixture; |
|
using Bit.Test.Common.AutoFixture.Attributes; |
|
using NSubstitute; |
|
using Xunit; |
|
|
|
namespace Bit.Core.Test.AdminConsole.OrganizationFeatures.OrganizationUsers; |
|
|
|
[SutProviderCustomize] |
|
public class RevokeOrganizationUserCommandTests |
|
{ |
|
|
|
[Theory, BitAutoData] |
|
public async Task RevokeUser_Success( |
|
Organization organization, |
|
[OrganizationUser(OrganizationUserStatusType.Confirmed, OrganizationUserType.Owner)] OrganizationUser owner, |
|
[OrganizationUser] OrganizationUser organizationUser, |
|
SutProvider<RevokeOrganizationUserCommand> sutProvider) |
|
{ |
|
RestoreRevokeUser_Setup(organization, owner, organizationUser, sutProvider); |
|
|
|
await sutProvider.Sut.RevokeUserAsync(organizationUser, owner.Id); |
|
|
|
await sutProvider.GetDependency<IOrganizationUserRepository>() |
|
.Received(1) |
|
.RevokeAsync(organizationUser.Id); |
|
await sutProvider.GetDependency<IEventService>() |
|
.Received(1) |
|
.LogOrganizationUserEventAsync(organizationUser, EventType.OrganizationUser_Revoked); |
|
await sutProvider.GetDependency<IPushNotificationService>() |
|
.Received(1) |
|
.PushSyncOrgKeysAsync(organizationUser.UserId!.Value); |
|
} |
|
|
|
[Theory, BitAutoData] |
|
public async Task RevokeUser_WithEventSystemUser_Success( |
|
Organization organization, |
|
[OrganizationUser] OrganizationUser organizationUser, |
|
EventSystemUser eventSystemUser, |
|
SutProvider<RevokeOrganizationUserCommand> sutProvider) |
|
{ |
|
RestoreRevokeUser_Setup(organization, null, organizationUser, sutProvider); |
|
|
|
await sutProvider.Sut.RevokeUserAsync(organizationUser, eventSystemUser); |
|
|
|
await sutProvider.GetDependency<IOrganizationUserRepository>() |
|
.Received(1) |
|
.RevokeAsync(organizationUser.Id); |
|
await sutProvider.GetDependency<IEventService>() |
|
.Received(1) |
|
.LogOrganizationUserEventAsync(organizationUser, EventType.OrganizationUser_Revoked, eventSystemUser); |
|
await sutProvider.GetDependency<IPushNotificationService>() |
|
.Received(1) |
|
.PushSyncOrgKeysAsync(organizationUser.UserId!.Value); |
|
} |
|
|
|
private void RestoreRevokeUser_Setup( |
|
Organization organization, |
|
OrganizationUser? requestingOrganizationUser, |
|
OrganizationUser targetOrganizationUser, |
|
SutProvider<RevokeOrganizationUserCommand> sutProvider) |
|
{ |
|
if (requestingOrganizationUser != null) |
|
{ |
|
requestingOrganizationUser.OrganizationId = organization.Id; |
|
} |
|
targetOrganizationUser.OrganizationId = organization.Id; |
|
|
|
sutProvider.GetDependency<ICurrentContext>().OrganizationOwner(organization.Id).Returns(requestingOrganizationUser != null && requestingOrganizationUser.Type is OrganizationUserType.Owner); |
|
sutProvider.GetDependency<IHasConfirmedOwnersExceptQuery>() |
|
.HasConfirmedOwnersExceptAsync(organization.Id, Arg.Any<IEnumerable<Guid>>()) |
|
.Returns(true); |
|
} |
|
}
|
|
|