using Bit.Api.Billing.Controllers; using Bit.Core.AdminConsole.Entities.Provider; using Bit.Core.AdminConsole.Enums.Provider; using Bit.Core.AdminConsole.Repositories; using Bit.Core.Context; using Bit.Core.Models.Api; using Bit.Test.Common.AutoFixture; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.HttpResults; using NSubstitute; using Xunit; namespace Bit.Api.Test.Billing; public static class Utilities { public static void AssertNotFound(IResult result) { Assert.IsType<NotFound<ErrorResponseModel>>(result); var response = ((NotFound<ErrorResponseModel>)result).Value; Assert.Equal("Resource not found.", response.Message); } public static void AssertUnauthorized(IResult result, string message = "Unauthorized.") { Assert.IsType<JsonHttpResult<ErrorResponseModel>>(result); var response = (JsonHttpResult<ErrorResponseModel>)result; Assert.Equal(StatusCodes.Status401Unauthorized, response.StatusCode); Assert.Equal(message, response.Value.Message); } public static void ConfigureStableProviderAdminInputs<T>( Provider provider, SutProvider<T> sutProvider) where T : BaseProviderController { ConfigureBaseProviderInputs(provider, sutProvider); sutProvider.GetDependency<ICurrentContext>().ProviderProviderAdmin(provider.Id) .Returns(true); } public static void ConfigureStableProviderServiceUserInputs<T>( Provider provider, SutProvider<T> sutProvider) where T : BaseProviderController { ConfigureBaseProviderInputs(provider, sutProvider); sutProvider.GetDependency<ICurrentContext>().ProviderUser(provider.Id) .Returns(true); } private static void ConfigureBaseProviderInputs<T>( Provider provider, SutProvider<T> sutProvider) where T : BaseProviderController { provider.Type = ProviderType.Msp; provider.Status = ProviderStatusType.Billable; sutProvider.GetDependency<IProviderRepository>().GetByIdAsync(provider.Id).Returns(provider); } }