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.
63 lines
2.1 KiB
63 lines
2.1 KiB
using Bit.Core.Entities; |
|
using Bit.Core.Enums; |
|
using Bit.Core.Models.Business; |
|
using Bit.Core.Repositories; |
|
using Bit.Core.Services; |
|
using Bit.IntegrationTestCommon.Factories; |
|
|
|
namespace Bit.Api.IntegrationTest.Helpers; |
|
|
|
public static class OrganizationTestHelpers |
|
{ |
|
public static async Task<Tuple<Organization, OrganizationUser>> SignUpAsync<T>(WebApplicationFactoryBase<T> factory, |
|
PlanType plan = PlanType.Free, |
|
string ownerEmail = "integration-test@bitwarden.com", |
|
string name = "Integration Test Org", |
|
string billingEmail = "integration-test@bitwarden.com", |
|
string ownerKey = "test-key") where T : class |
|
{ |
|
var userRepository = factory.GetService<IUserRepository>(); |
|
var organizationService = factory.GetService<IOrganizationService>(); |
|
|
|
var owner = await userRepository.GetByEmailAsync(ownerEmail); |
|
|
|
return await organizationService.SignUpAsync(new OrganizationSignup |
|
{ |
|
Name = name, |
|
BillingEmail = billingEmail, |
|
Plan = plan, |
|
OwnerKey = ownerKey, |
|
Owner = owner, |
|
}); |
|
} |
|
|
|
public static async Task<OrganizationUser> CreateUserAsync<T>( |
|
WebApplicationFactoryBase<T> factory, |
|
Guid organizationId, |
|
string userEmail, |
|
OrganizationUserType type, |
|
bool accessSecretsManager = false |
|
) where T : class |
|
{ |
|
var userRepository = factory.GetService<IUserRepository>(); |
|
var organizationUserRepository = factory.GetService<IOrganizationUserRepository>(); |
|
|
|
var user = await userRepository.GetByEmailAsync(userEmail); |
|
|
|
var orgUser = new OrganizationUser |
|
{ |
|
OrganizationId = organizationId, |
|
UserId = user.Id, |
|
Key = null, |
|
Type = type, |
|
Status = OrganizationUserStatusType.Confirmed, |
|
AccessAll = false, |
|
ExternalId = null, |
|
AccessSecretsManager = accessSecretsManager, |
|
}; |
|
|
|
await organizationUserRepository.CreateAsync(orgUser); |
|
|
|
return orgUser; |
|
} |
|
}
|
|
|