mirror of
https://github.com/bitwarden/server.git
synced 2024-11-25 12:45:18 +01:00
82908b1fb7
* [EC-634] Extract GenerateLicenseAsync to a query (#2373) * [EC-637] Add license sync to server (#2453) * [EC-1036] Show correct license sync date (#2626) * Update method name per new pattern
65 lines
2.8 KiB
C#
65 lines
2.8 KiB
C#
using Bit.Core.Entities;
|
|
using Bit.Core.Enums;
|
|
using Bit.Core.Exceptions;
|
|
using Bit.Core.Models.Business;
|
|
using Bit.Core.OrganizationFeatures.OrganizationLicenses;
|
|
using Bit.Core.Repositories;
|
|
using Bit.Core.Services;
|
|
using Bit.Core.Test.AutoFixture;
|
|
using Bit.Test.Common.AutoFixture;
|
|
using Bit.Test.Common.AutoFixture.Attributes;
|
|
using NSubstitute;
|
|
using NSubstitute.ReturnsExtensions;
|
|
using Xunit;
|
|
|
|
namespace Bit.Core.Test.OrganizationFeatures.OrganizationLicenses;
|
|
|
|
[SubscriptionInfoCustomize]
|
|
[OrganizationLicenseCustomize]
|
|
[SutProviderCustomize]
|
|
public class CloudGetOrganizationLicenseQueryTests
|
|
{
|
|
[Theory]
|
|
[BitAutoData]
|
|
public async Task GetLicenseAsync_InvalidInstallationId_Throws(SutProvider<CloudGetOrganizationLicenseQuery> sutProvider,
|
|
Organization organization, Guid installationId, int version)
|
|
{
|
|
sutProvider.GetDependency<IInstallationRepository>().GetByIdAsync(installationId).ReturnsNull();
|
|
var exception = await Assert.ThrowsAsync<BadRequestException>(
|
|
async () => await sutProvider.Sut.GetLicenseAsync(organization, installationId, version));
|
|
Assert.Contains("Invalid installation id", exception.Message);
|
|
}
|
|
|
|
[Theory]
|
|
[BitAutoData]
|
|
public async Task GetLicenseAsync_DisabledOrganization_Throws(SutProvider<CloudGetOrganizationLicenseQuery> sutProvider,
|
|
Organization organization, Guid installationId, Installation installation)
|
|
{
|
|
installation.Enabled = false;
|
|
sutProvider.GetDependency<IInstallationRepository>().GetByIdAsync(installationId).Returns(installation);
|
|
|
|
var exception = await Assert.ThrowsAsync<BadRequestException>(
|
|
async () => await sutProvider.Sut.GetLicenseAsync(organization, installationId));
|
|
Assert.Contains("Invalid installation id", exception.Message);
|
|
}
|
|
|
|
[Theory]
|
|
[BitAutoData]
|
|
public async Task GetLicenseAsync_CreatesAndReturns(SutProvider<CloudGetOrganizationLicenseQuery> sutProvider,
|
|
Organization organization, Guid installationId, Installation installation, SubscriptionInfo subInfo,
|
|
byte[] licenseSignature)
|
|
{
|
|
installation.Enabled = true;
|
|
sutProvider.GetDependency<IInstallationRepository>().GetByIdAsync(installationId).Returns(installation);
|
|
sutProvider.GetDependency<IPaymentService>().GetSubscriptionAsync(organization).Returns(subInfo);
|
|
sutProvider.GetDependency<ILicensingService>().SignLicense(Arg.Any<ILicense>()).Returns(licenseSignature);
|
|
|
|
var result = await sutProvider.Sut.GetLicenseAsync(organization, installationId);
|
|
|
|
Assert.Equal(LicenseType.Organization, result.LicenseType);
|
|
Assert.Equal(organization.Id, result.Id);
|
|
Assert.Equal(installationId, result.InstallationId);
|
|
Assert.Equal(licenseSignature, result.SignatureBytes);
|
|
}
|
|
}
|