feat(client): standardize connection outcomes (#13)
quality-gate / quality (push) Successful in 59s
quality-gate / quality (push) Successful in 59s
This commit is contained in:
@@ -3,6 +3,7 @@ using FinalFactory.Rendezvous.Contracts;
|
||||
using FinalFactory.Rendezvous.Server.Provisioning;
|
||||
using FinalFactory.Rendezvous.Server.Sessions;
|
||||
using FinalFactory.Rendezvous.Server.State;
|
||||
using FinalFactory.Rendezvous.Tests.Provisioning;
|
||||
|
||||
namespace FinalFactory.Rendezvous.Tests.Sessions;
|
||||
|
||||
@@ -118,6 +119,12 @@ public sealed class SessionLeaseServiceTests
|
||||
["mode"] = "co-op",
|
||||
["map"] = "europa",
|
||||
},
|
||||
DedicatedFallback = new()
|
||||
{
|
||||
AddressFamily = AddressFamilyKind.Ipv4,
|
||||
Address = "203.0.113.92",
|
||||
Port = 9_062,
|
||||
},
|
||||
});
|
||||
StoredListing stored = fixture.Store.GetListing(registration.ListingId, false).Value!;
|
||||
|
||||
@@ -128,6 +135,7 @@ public sealed class SessionLeaseServiceTests
|
||||
Assert.Equal(fixture.Scope, stored.Definition.Scope);
|
||||
Assert.Equal(8, stored.Definition.CurrentPlayers);
|
||||
Assert.Equal(8, stored.Definition.MaximumPlayers);
|
||||
Assert.Equal("203.0.113.92", stored.Definition.DedicatedFallback!.Address);
|
||||
Assert.True(fixture.Service.Delete(
|
||||
fixture.Principal,
|
||||
registration.ListingId,
|
||||
@@ -139,6 +147,45 @@ public sealed class SessionLeaseServiceTests
|
||||
Assert.Equal(StoreResultCode.NotFound, fixture.Store.GetListing(registration.ListingId, false).Code);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void DisabledFallbackPolicyRejectsRegistrationAndUpdateEndpoints()
|
||||
{
|
||||
GamePolicyOptions policy = ProvisioningTestData.CreatePolicy();
|
||||
policy.FallbackPolicy = FallbackPolicyMode.Disabled;
|
||||
using SessionLeaseFixture fixture = new(policyOptions: policy);
|
||||
RegisterSessionRequest registrationRequest = fixture.Request();
|
||||
registrationRequest.DedicatedFallback = new()
|
||||
{
|
||||
AddressFamily = AddressFamilyKind.Ipv4,
|
||||
Address = "203.0.113.94",
|
||||
Port = 9_064,
|
||||
};
|
||||
|
||||
Assert.Equal(
|
||||
RendezvousErrorCode.Forbidden,
|
||||
fixture.Service.Register(fixture.Principal, registrationRequest).Error);
|
||||
|
||||
RegisterSessionResponse registration = fixture.Register();
|
||||
Assert.Equal(
|
||||
RendezvousErrorCode.Forbidden,
|
||||
fixture.Service.Update(
|
||||
fixture.Principal,
|
||||
registration.ListingId,
|
||||
new UpdateSessionRequest
|
||||
{
|
||||
LeaseToken = registration.LeaseToken,
|
||||
BuildVersion = "1.4.3",
|
||||
DisplayName = "Europa Updated",
|
||||
Capacity = new() { CurrentPlayers = 2, MaximumPlayers = 8 },
|
||||
Metadata = new Dictionary<string, string>(StringComparer.Ordinal)
|
||||
{
|
||||
["mode"] = "co-op",
|
||||
["map"] = "europa",
|
||||
},
|
||||
DedicatedFallback = registrationRequest.DedicatedFallback,
|
||||
}).Error);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AnotherPublisherCannotRenewUpdateOrDeleteListing()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user