mirror of
https://github.com/bitwarden/server
synced 2026-01-15 06:53:26 +00:00
* implement the ticket request * resolve the build lint error * Resolve the build lint error * Address review comments * Fixt the lint and failing unit test * Fix NSubstitute mock - use concrete ClaimsPrincipal instead of Arg.Any in Returns() * resolve InjectUser issues * Fix the failing testing * Fix the failing unit test
58 lines
2.3 KiB
C#
58 lines
2.3 KiB
C#
using Bit.Api.Billing.Controllers.VNext;
|
|
using Bit.Core.Billing.Licenses.Queries;
|
|
using Bit.Core.Billing.Payment.Commands;
|
|
using Bit.Core.Billing.Payment.Queries;
|
|
using Bit.Core.Billing.Premium.Commands;
|
|
using Bit.Core.Entities;
|
|
using Bit.Test.Common.AutoFixture.Attributes;
|
|
using Microsoft.AspNetCore.Http;
|
|
using NSubstitute;
|
|
using Xunit;
|
|
|
|
namespace Bit.Api.Test.Billing.Controllers.VNext;
|
|
|
|
public class AccountBillingVNextControllerTests
|
|
{
|
|
private readonly ICreateBitPayInvoiceForCreditCommand _createBitPayInvoiceForCreditCommand;
|
|
private readonly ICreatePremiumCloudHostedSubscriptionCommand _createPremiumCloudHostedSubscriptionCommand;
|
|
private readonly IGetCreditQuery _getCreditQuery;
|
|
private readonly IGetPaymentMethodQuery _getPaymentMethodQuery;
|
|
private readonly IGetUserLicenseQuery _getUserLicenseQuery;
|
|
private readonly IUpdatePaymentMethodCommand _updatePaymentMethodCommand;
|
|
private readonly AccountBillingVNextController _sut;
|
|
|
|
public AccountBillingVNextControllerTests()
|
|
{
|
|
_createBitPayInvoiceForCreditCommand = Substitute.For<ICreateBitPayInvoiceForCreditCommand>();
|
|
_createPremiumCloudHostedSubscriptionCommand = Substitute.For<ICreatePremiumCloudHostedSubscriptionCommand>();
|
|
_getCreditQuery = Substitute.For<IGetCreditQuery>();
|
|
_getPaymentMethodQuery = Substitute.For<IGetPaymentMethodQuery>();
|
|
_getUserLicenseQuery = Substitute.For<IGetUserLicenseQuery>();
|
|
_updatePaymentMethodCommand = Substitute.For<IUpdatePaymentMethodCommand>();
|
|
|
|
_sut = new AccountBillingVNextController(
|
|
_createBitPayInvoiceForCreditCommand,
|
|
_createPremiumCloudHostedSubscriptionCommand,
|
|
_getCreditQuery,
|
|
_getPaymentMethodQuery,
|
|
_getUserLicenseQuery,
|
|
_updatePaymentMethodCommand);
|
|
}
|
|
|
|
[Theory, BitAutoData]
|
|
public async Task GetLicenseAsync_ValidUser_ReturnsLicenseResponse(User user,
|
|
Core.Billing.Licenses.Models.Api.Response.LicenseResponseModel licenseResponse)
|
|
{
|
|
// Arrange
|
|
_getUserLicenseQuery.Run(user).Returns(licenseResponse);
|
|
|
|
// Act
|
|
var result = await _sut.GetLicenseAsync(user);
|
|
|
|
// Assert
|
|
var okResult = Assert.IsAssignableFrom<IResult>(result);
|
|
await _getUserLicenseQuery.Received(1).Run(user);
|
|
}
|
|
|
|
}
|