feat(client): add rendezvous traversal coordinators (#12)
quality-gate / quality (push) Successful in 56s
quality-gate / quality (push) Successful in 56s
This commit is contained in:
@@ -152,12 +152,47 @@ public sealed class JoinAttemptServiceTests
|
||||
Assert.True(fixture.Service.Cancel(
|
||||
created.AttemptId,
|
||||
created.ClientPunchCapability).Succeeded);
|
||||
Assert.Empty(fixture.Service.BrowseForHost(
|
||||
Assert.True(fixture.Service.Cancel(
|
||||
created.AttemptId,
|
||||
created.ClientPunchCapability).Succeeded);
|
||||
HostJoinAttempt cancelled = Assert.Single(fixture.Service.BrowseForHost(
|
||||
registration.ListingId,
|
||||
ContractLimits.ContractVersion,
|
||||
registration.LeaseToken,
|
||||
10,
|
||||
null).Value!.Items);
|
||||
Assert.Equal(created.AttemptId, cancelled.AttemptId);
|
||||
Assert.True(cancelled.IsCancelled);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CancellationAfterIntroductionRevokesTicketIssuanceAndConsumption()
|
||||
{
|
||||
using JoinAttemptFixture fixture = new();
|
||||
(RegisterSessionResponse registration, _) = fixture.CreateHost();
|
||||
CreateJoinAttemptResponse created = fixture.Create(registration.ListingId);
|
||||
IntroductionEndpoints introduction = fixture.Introduce(registration, created);
|
||||
JoinAttemptServiceResult<ConnectionTicketGrant> issued =
|
||||
fixture.Service.IssueConnectionTicket(introduction.Attempt);
|
||||
Assert.True(issued.Succeeded);
|
||||
Assert.True(fixture.Sessions.Capabilities.TryFingerprint(
|
||||
issued.Value!.Ticket,
|
||||
out SecretFingerprint ticketFingerprint));
|
||||
|
||||
Assert.True(fixture.Service.Cancel(
|
||||
created.AttemptId,
|
||||
created.ClientPunchCapability).Succeeded);
|
||||
|
||||
StoredJoinAttempt cancelled = fixture.GetAttempt(registration, created.AttemptId);
|
||||
Assert.True(cancelled.IsCancelled);
|
||||
Assert.Equal(
|
||||
RendezvousErrorCode.Conflict,
|
||||
fixture.Service.IssueConnectionTicket(cancelled).Error);
|
||||
Assert.Equal(
|
||||
StoreResultCode.Conflict,
|
||||
fixture.Sessions.Store.ConsumeConnectionTicket(new(
|
||||
created.AttemptId,
|
||||
ticketFingerprint)).Code);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user