public async Task GetTenantSharedInfo_ShouldSucceed_GivenOperatorWorkplace_WithRenewalHandler() { // Given // client authenticated as operator workplace var tokens = await _apiClient.SignInWithWorkplaceCredentialsAsync( _operatorWorkplaceCredentials.ClientId, _operatorWorkplaceCredentials.ClientSecret, PskOnlineScopes.DeptOperatorWorkplace); var workplaceIdToken = _apiClient.GetIdToken(); var tenantId = workplaceIdToken.Claims.First(c => c.Type == CustomClaimTypes.TenantId).Value; { var httpClient = _app.CreateClient(); var renewalHandler = new OpenIdRenewalHandler(httpClient, tokens, null, _app.GetLogger <ApiClient>()); var localApiClient = new ApiClient(httpClient, renewalHandler, _app.GetLogger <ApiClient>()); // When // the operator workplace reads 'shared' tenant info var tenantInfo = await localApiClient.GetTenantSharedInfoAsync(tenantId); // Then // the request should succeed Assert.That(tenantInfo.Id, Is.EqualTo(tenantId)); } }
public async Task OpenIdRenewalHandler_Should_Fire_Token_Updated_Event() { // Given // a client signed in with valid credentials var apiClient = new ApiClient(_httpClient, _app.GetLogger <ApiClient>()); var tokens = await apiClient.SignInWithUserPasswordAsync( TestUsers.DefaultSiteAdminName, TestUsers.DefaultSiteAdminPass); var authHandler = new ResourceOwnerPasswordHandler( _httpClient, TestUsers.DefaultSiteAdminName.ToSecureString(), TestUsers.DefaultSiteAdminPass.ToSecureString()); // with the OpenIdRenewalHandler var oidHandler = new OpenIdRenewalHandler( _httpClient, tokens, authHandler, _app.GetLogger <OpenIdRenewalHandler>()); // and an event handler hooked up to the event bool tokenUpdatedEventFired = false; void TokenUpdatedEventHandler(TokenHolder newTokens) { tokenUpdatedEventFired = true; } oidHandler.TokenUpdated += TokenUpdatedEventHandler; // When // the renewal handler updates the tokens, await oidHandler.RefereshAuthenticationAsync(); // Then // the event should have fired Assert.IsTrue(tokenUpdatedEventFired); }