mirror of
https://github.com/JogmansonReal/Radicade.git
synced 2026-10-25 23:18:56 -07:00
Radicade Public Code
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
using RadicadeServer.Utils;
|
||||
using Xunit;
|
||||
|
||||
namespace RadicadeServer.Tests;
|
||||
|
||||
/// <summary>
|
||||
/// RoomUtils/MatchmakingUtils expose their DbContext factories as process-wide statics, so
|
||||
/// two test classes that replace them cannot run at the same time - whichever wins would
|
||||
/// answer the other's queries. xUnit parallelizes classes by default, which made the suite
|
||||
/// fail depending on scheduling; membership in this collection serializes those classes.
|
||||
/// </summary>
|
||||
[CollectionDefinition(Name)]
|
||||
public class DbFactoryCollection : ICollectionFixture<RegistrationThrottleFixture>
|
||||
{
|
||||
public const string Name = "SharesDbFactoryStatics";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The registration throttle is process-wide state. This suite creates dozens of accounts from
|
||||
/// loopback using the same handful of device ids, so without this the run would spend itself
|
||||
/// refusing its own fixtures and prove nothing about registration. The limits themselves are
|
||||
/// covered on their own terms by AccountRegistrationTests, which sets its own and puts them back.
|
||||
/// </summary>
|
||||
public sealed class RegistrationThrottleFixture
|
||||
{
|
||||
public RegistrationThrottleFixture() =>
|
||||
RegistrationGuard.Configure(
|
||||
maxCreationsPerIp: int.MaxValue,
|
||||
maxCreationsPerDevice: int.MaxValue,
|
||||
minimumDeviceInterval: TimeSpan.Zero);
|
||||
}
|
||||
Reference in New Issue
Block a user