public async Task ShouldKeepCurrentTokenParamsAndOptionsEvenIfCurrentTokenIsValidAndNoNewTokenIsRequested() { var client = GetRestClient( null, opts => opts.TokenDetails = new TokenDetails("boo") { Expires = Now.AddHours(10) }); var testAblyAuth = new TestAblyAuth(client.Options, client); var customTokenParams = TokenParams.WithDefaultsApplied(); customTokenParams.Ttl = TimeSpan.FromHours(2); customTokenParams.Timestamp = Now.AddHours(1); var customAuthOptions = AuthOptions.FromExisting(testAblyAuth.Options); customAuthOptions.UseTokenAuth = true; await testAblyAuth.AuthorizeAsync(customTokenParams, customAuthOptions); var expectedTokenParams = customTokenParams.Clone(); expectedTokenParams.Timestamp = null; testAblyAuth.CurrentTokenParams.Should().BeEquivalentTo(expectedTokenParams); testAblyAuth.CurrentAuthOptions.Should().BeSameAs(customAuthOptions); }
public async Task Authorize_PreservesTokenRequestOptionsForSubsequentRequests() { var client = GetRestClient(); var tokenParams = TokenParams.WithDefaultsApplied(); tokenParams.Ttl = TimeSpan.FromMinutes(260); await client.Auth.AuthorizeAsync(tokenParams); await client.Auth.AuthorizeAsync(); var data = LastRequest.PostData as TokenRequest; client.AblyAuth.CurrentTokenParams.Should().BeEquivalentTo(tokenParams); data.Ttl.Should().Be(TimeSpan.FromMinutes(260)); }
public async Task Authorize_UseRequestTokenToCreateTokensAndPassesTokenParamsAndAuthOptions() { var client = GetRestClient(); var testAblyAuth = new TestAblyAuth(client.Options, client); testAblyAuth.Options.UseTokenAuth = true; var customAuthOptions = testAblyAuth.Options; var customTokenParams = TokenParams.WithDefaultsApplied(); customTokenParams.Ttl = TimeSpan.FromHours(2); await testAblyAuth.AuthorizeAsync(customTokenParams, customAuthOptions); testAblyAuth.RequestTokenCalled.Should().BeTrue("Token creation was not delegated to RequestToken"); testAblyAuth.LastRequestTokenParams.Should().BeSameAs(customTokenParams); testAblyAuth.LastRequestAuthOptions.Should().BeSameAs(customAuthOptions); }
public async Task ShouldKeepTokenParamsAndAuthOptionsExceptForceAndCurrentTimestamp() { var client = GetRestClient(); var testAblyAuth = new TestAblyAuth(client.Options, client); var customTokenParams = TokenParams.WithDefaultsApplied(); _ = customTokenParams.Merge(new TokenParams { Ttl = TimeSpan.FromHours(2), Timestamp = Now.AddHours(1) }); var customAuthOptions = AuthOptions.FromExisting(testAblyAuth.Options); customAuthOptions.UseTokenAuth = true; await testAblyAuth.AuthorizeAsync(customTokenParams, customAuthOptions); var expectedTokenParams = customTokenParams.Clone(); expectedTokenParams.Timestamp = null; testAblyAuth.CurrentTokenParams.Should().BeEquivalentTo(expectedTokenParams); testAblyAuth.CurrentAuthOptions.Should().BeSameAs(customAuthOptions); testAblyAuth.CurrentTokenParams.Timestamp.Should().Be(null); }