1
0
mirror of https://github.com/bitwarden/server.git synced 2025-06-30 23:52:50 -05:00

Moved to private method. Made ScimInvite inherit the single invite base model. Moved create methods to constructors. A few more CR changes included.

This commit is contained in:
jrmccannon
2025-03-05 14:55:41 -06:00
parent 085dbffed1
commit 611ad8c343
16 changed files with 114 additions and 130 deletions

View File

@ -15,7 +15,7 @@ public class InviteOrganizationUserRequestTests
public void Create_WhenPassedInvalidEmail_ThrowsException(string email,
OrganizationUserType type, Permissions permissions, bool accessSecretsManager)
{
var action = () => OrganizationUserSingleEmailInvite.Create(email, [], type, permissions, accessSecretsManager);
var action = () => new OrganizationUserSingleEmailInvite(email, [], type, permissions, accessSecretsManager);
var exception = Assert.Throws<BadRequestException>(action);
@ -30,8 +30,7 @@ public class InviteOrganizationUserRequestTests
var invalidCollectionConfiguration = new CollectionAccessSelection { Manage = true, HidePasswords = true };
var action = () =>
OrganizationUserSingleEmailInvite.Create(validEmail, [invalidCollectionConfiguration], type, permissions, accessSecretsManager);
var action = () => new OrganizationUserSingleEmailInvite(validEmail, [invalidCollectionConfiguration], type, permissions, accessSecretsManager);
var exception = Assert.Throws<BadRequestException>(action);
@ -45,7 +44,7 @@ public class InviteOrganizationUserRequestTests
const string validEmail = "test@email.com";
var validCollectionConfiguration = new CollectionAccessSelection { Id = Guid.NewGuid(), Manage = true };
var invite = OrganizationUserSingleEmailInvite.Create(validEmail, [validCollectionConfiguration], type, permissions, accessSecretsManager);
var invite = new OrganizationUserSingleEmailInvite(validEmail, [validCollectionConfiguration], type, permissions, accessSecretsManager);
Assert.NotNull(invite);
Assert.Equal(validEmail, invite.Email);

View File

@ -1,23 +0,0 @@
using Bit.Core.AdminConsole.Models.Business;
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Models;
using Bit.Core.Enums;
using Bit.Core.Models.Data;
namespace Bit.Core.Test.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Helpers;
public static class InviteScimOrganizationUserRequestHelpers
{
public static InviteScimOrganizationUserRequest GetInviteScimOrganizationUserRequestDefault(string email,
OrganizationDto organizationDto, DateTimeOffset performedAt, string externalId) =>
InviteScimOrganizationUserRequest.Create(
OrganizationUserSingleEmailInvite.Create(
email,
[],
OrganizationUserType.User,
new Permissions(),
false),
organizationDto,
performedAt,
externalId
);
}

View File

@ -12,8 +12,8 @@ public static class InviteUserOrganizationValidationRequestHelpers
{
Invites =
[
OrganizationUserInviteDto.Create(request.Invite.Email,
OrganizationUserInvite.Create(request.Invite, request.ExternalId), organizationDto.OrganizationId)
OrganizationUserInviteDto.Create(request.Email,
OrganizationUserInvite.Create(request, request.ExternalId), organizationDto.OrganizationId)
],
Organization = organizationDto,
PerformedBy = Guid.Empty,

View File

@ -18,7 +18,6 @@ using Bit.Test.Common.AutoFixture.Attributes;
using Microsoft.Extensions.Time.Testing;
using NSubstitute;
using Xunit;
using static Bit.Core.Test.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Helpers.InviteScimOrganizationUserRequestHelpers;
using static Bit.Core.Test.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers.Helpers.InviteUserOrganizationValidationRequestHelpers;
namespace Bit.Core.Test.AdminConsole.OrganizationFeatures.OrganizationUsers.InviteUsers;
@ -41,7 +40,8 @@ public class InviteOrganizationUserCommandTests
var organizationDto = OrganizationDto.FromOrganization(organization);
var request = GetInviteScimOrganizationUserRequestDefault(user.Email,
var request = new InviteScimOrganizationUserRequest(user.Email,
true,
organizationDto,
timeProvider.GetUtcNow(),
externalId);
@ -58,7 +58,7 @@ public class InviteOrganizationUserCommandTests
var result = await sutProvider.Sut.InviteScimOrganizationUserAsync(request);
// Assert
Assert.IsType<Success<OrganizationUser>>(result);
Assert.IsType<Success<ScimInviteOrganizationUsersResponse>>(result);
sutProvider.GetDependency<IPaymentService>()
.DidNotReceiveWithAnyArgs()
@ -88,7 +88,8 @@ public class InviteOrganizationUserCommandTests
var organizationDto = OrganizationDto.FromOrganization(organization);
var request = GetInviteScimOrganizationUserRequestDefault(user.Email,
var request = new InviteScimOrganizationUserRequest(user.Email,
true,
organizationDto,
timeProvider.GetUtcNow(),
externalId);
@ -109,12 +110,12 @@ public class InviteOrganizationUserCommandTests
var result = await sutProvider.Sut.InviteScimOrganizationUserAsync(request);
// Assert
Assert.IsType<Success<OrganizationUser>>(result);
Assert.IsType<Success<ScimInviteOrganizationUsersResponse>>(result);
sutProvider.GetDependency<IOrganizationUserRepository>()
.Received(1)
.CreateManyAsync(Arg.Is<IEnumerable<CreateOrganizationUser>>(users =>
users.Any(user => user.User.Email == request.Invite.Email)));
users.Any(user => user.OrganizationUser.Email == request.Email)));
sutProvider.GetDependency<ISendOrganizationInvitesCommand>()
.Received(1)
@ -140,7 +141,8 @@ public class InviteOrganizationUserCommandTests
var organizationDto = OrganizationDto.FromOrganization(organization);
var request = GetInviteScimOrganizationUserRequestDefault(user.Email,
var request = new InviteScimOrganizationUserRequest(user.Email,
true,
organizationDto,
timeProvider.GetUtcNow(),
externalId);
@ -194,7 +196,8 @@ public class InviteOrganizationUserCommandTests
var organizationDto = OrganizationDto.FromOrganization(organization);
var request = GetInviteScimOrganizationUserRequestDefault(user.Email,
var request = new InviteScimOrganizationUserRequest(user.Email,
true,
organizationDto,
timeProvider.GetUtcNow(),
externalId);
@ -221,7 +224,7 @@ public class InviteOrganizationUserCommandTests
var result = await sutProvider.Sut.InviteScimOrganizationUserAsync(request);
// Assert
Assert.IsType<Success<OrganizationUser>>(result);
Assert.IsType<Success<ScimInviteOrganizationUsersResponse>>(result);
sutProvider.GetDependency<IMailService>()
.Received(1)
@ -249,7 +252,8 @@ public class InviteOrganizationUserCommandTests
var organizationDto = OrganizationDto.FromOrganization(organization);
var request = GetInviteScimOrganizationUserRequestDefault(user.Email,
var request = new InviteScimOrganizationUserRequest(user.Email,
true,
organizationDto,
timeProvider.GetUtcNow(),
externalId);
@ -279,7 +283,7 @@ public class InviteOrganizationUserCommandTests
var result = await sutProvider.Sut.InviteScimOrganizationUserAsync(request);
// Assert
Assert.IsType<Success<OrganizationUser>>(result);
Assert.IsType<Success<ScimInviteOrganizationUsersResponse>>(result);
sutProvider.GetDependency<IPaymentService>()
.AdjustSeatsAsync(organization, organizationDto.Plan, passwordManagerUpdate.SeatsRequiredToAdd);
@ -311,7 +315,8 @@ public class InviteOrganizationUserCommandTests
var organizationDto = OrganizationDto.FromOrganization(organization);
var request = GetInviteScimOrganizationUserRequestDefault(user.Email,
var request = new InviteScimOrganizationUserRequest(user.Email,
true,
organizationDto,
timeProvider.GetUtcNow(),
externalId);
@ -345,7 +350,7 @@ public class InviteOrganizationUserCommandTests
var result = await sutProvider.Sut.InviteScimOrganizationUserAsync(request);
// Assert
Assert.IsType<Success<OrganizationUser>>(result);
Assert.IsType<Success<ScimInviteOrganizationUsersResponse>>(result);
sutProvider.GetDependency<IUpdateSecretsManagerSubscriptionCommand>()
.Received(1)