Files
server/test/Api.Test/AdminConsole/Controllers/ProviderOrganizationsControllerTests.cs
Thomas Rittson bb5506e934 [PM-34595] Update provider controllers to use authz attribute (#7450)
* Also decouple ProviderClientsController from Billing Team code

* Also add noop authorize attribute where no additional
  authorization is required

* Also remove unused ICurrentContext getters
2026-04-17 07:49:49 +10:00

47 lines
1.6 KiB
C#

using Bit.Api.AdminConsole.Controllers;
using Bit.Api.AdminConsole.Models.Request.Providers;
using Bit.Core.AdminConsole.Services;
using Bit.Core.Context;
using Bit.Core.Exceptions;
using Bit.Test.Common.AutoFixture;
using Bit.Test.Common.AutoFixture.Attributes;
using NSubstitute;
using Xunit;
namespace Bit.Api.Test.AdminConsole.Controllers;
[ControllerCustomize(typeof(ProviderOrganizationsController))]
[SutProviderCustomize]
public class ProviderOrganizationsControllerTests
{
[Theory, BitAutoData]
public async Task Add_NotOrgOwner_ThrowsNotFound(
Guid providerId,
ProviderOrganizationAddRequestModel model,
SutProvider<ProviderOrganizationsController> sutProvider)
{
sutProvider.GetDependency<ICurrentContext>().OrganizationOwner(model.OrganizationId)
.Returns(false);
await Assert.ThrowsAsync<NotFoundException>(() => sutProvider.Sut.Add(providerId, model));
await sutProvider.GetDependency<IProviderService>().DidNotReceiveWithAnyArgs()
.AddOrganization(default, default, default);
}
[Theory, BitAutoData]
public async Task Add_Ok(
Guid providerId,
ProviderOrganizationAddRequestModel model,
SutProvider<ProviderOrganizationsController> sutProvider)
{
sutProvider.GetDependency<ICurrentContext>().OrganizationOwner(model.OrganizationId)
.Returns(true);
await sutProvider.Sut.Add(providerId, model);
await sutProvider.GetDependency<IProviderService>().Received(1)
.AddOrganization(providerId, model.OrganizationId, model.Key);
}
}