refactor: extract NATS.Server.Auth.Tests project
Move 50 auth/accounts/permissions/JWT/NKey test files from NATS.Server.Tests into a dedicated NATS.Server.Auth.Tests project. Update namespaces, replace private GetFreePort/ReadUntilAsync helpers with TestUtilities calls, replace Task.Delay with TaskCompletionSource in test doubles, and add InternalsVisibleTo. 690 tests pass.
This commit is contained in:
71
tests/NATS.Server.Auth.Tests/AccountTests.cs
Normal file
71
tests/NATS.Server.Auth.Tests/AccountTests.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using NATS.Server.Auth;
|
||||
using NATS.Server.Subscriptions;
|
||||
|
||||
namespace NATS.Server.Auth.Tests;
|
||||
|
||||
public class AccountTests
|
||||
{
|
||||
[Fact]
|
||||
public void Account_has_name_and_own_sublist()
|
||||
{
|
||||
var account = new Account("test-account");
|
||||
|
||||
account.Name.ShouldBe("test-account");
|
||||
account.SubList.ShouldNotBeNull();
|
||||
account.SubList.Count.ShouldBe(0u);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Account_tracks_clients()
|
||||
{
|
||||
var account = new Account("test");
|
||||
|
||||
account.ClientCount.ShouldBe(0);
|
||||
account.AddClient(1);
|
||||
account.ClientCount.ShouldBe(1);
|
||||
account.RemoveClient(1);
|
||||
account.ClientCount.ShouldBe(0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GlobalAccount_has_default_name()
|
||||
{
|
||||
Account.GlobalAccountName.ShouldBe("$G");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Account_enforces_max_connections()
|
||||
{
|
||||
var acc = new Account("test") { MaxConnections = 2 };
|
||||
acc.AddClient(1).ShouldBeTrue();
|
||||
acc.AddClient(2).ShouldBeTrue();
|
||||
acc.AddClient(3).ShouldBeFalse(); // exceeds limit
|
||||
acc.ClientCount.ShouldBe(2);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Account_unlimited_connections_when_zero()
|
||||
{
|
||||
var acc = new Account("test") { MaxConnections = 0 };
|
||||
acc.AddClient(1).ShouldBeTrue();
|
||||
acc.AddClient(2).ShouldBeTrue();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Account_enforces_max_subscriptions()
|
||||
{
|
||||
var acc = new Account("test") { MaxSubscriptions = 2 };
|
||||
acc.IncrementSubscriptions().ShouldBeTrue();
|
||||
acc.IncrementSubscriptions().ShouldBeTrue();
|
||||
acc.IncrementSubscriptions().ShouldBeFalse();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Account_decrement_subscriptions()
|
||||
{
|
||||
var acc = new Account("test") { MaxSubscriptions = 1 };
|
||||
acc.IncrementSubscriptions().ShouldBeTrue();
|
||||
acc.DecrementSubscriptions();
|
||||
acc.IncrementSubscriptions().ShouldBeTrue(); // slot freed
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user