public async Task ShouldStoreMultipleCredentials() { // given await TokenProvider.GetAccessTokenForRequestAsync(); var otherProvider = new CamundaCloudTokenProviderBuilder() .UseAuthServer(_requestUri) .UseClientId(_clientId = "OTHERID") .UseClientSecret(_clientSecret = "OTHERSECRET") .UseAudience(_audience = "OTHER_AUDIENCE") .Build(); otherProvider.SetHttpMessageHandler(MessageHandlerStub); otherProvider.TokenStoragePath = TokenStoragePath; Token = "OTHER_TOKEN"; // when var token = await otherProvider.GetAccessTokenForRequestAsync(); // then Assert.AreEqual("OTHER_TOKEN", token); var files = Directory.GetFiles(TokenStoragePath); Assert.AreEqual(1, files.Length); var tokenFile = files[0]; var content = File.ReadAllText(tokenFile); var credentials = JsonConvert.DeserializeObject <Dictionary <string, CamundaCloudTokenProvider.AccessToken> >(content); Assert.AreEqual(credentials.Count, 2); Assert.AreEqual(token, credentials["OTHER_AUDIENCE"].Token); Assert.AreEqual("REQUESTED_TOKEN", credentials["AUDIENCE"].Token); }
public async Task ShouldRequestCredentials() { // given // when var token = await TokenProvider.GetAccessTokenForRequestAsync(); // then Assert.AreEqual("REQUESTED_TOKEN", token); Assert.AreEqual(1, MessageHandlerStub.RequestCount); }
public async Task ShouldNotThrowObjectDisposedExceptionWhenTokenExpires() { // given ExpiresIn = 0; await TokenProvider.GetAccessTokenForRequestAsync(); // when Assert.DoesNotThrowAsync(async() => await TokenProvider.GetAccessTokenForRequestAsync()); // then Assert.AreEqual(2, MessageHandlerStub.RequestCount); }
public async Task ShouldUseCachedFile() { // given Token = "STORED_TOKEN"; await TokenProvider.GetAccessTokenForRequestAsync(); // re-init the TokenProvider Init(); // when var token = await TokenProvider.GetAccessTokenForRequestAsync(); // then Assert.AreEqual("STORED_TOKEN", token); Assert.AreEqual(0, MessageHandlerStub.RequestCount); }
public async Task ShouldRequestWhenCachedFileExpired() { // given ExpiresIn = 0; Token = "STORED_TOKEN"; await TokenProvider.GetAccessTokenForRequestAsync(); // re-init the TokenProvider Init(); // when var token = await TokenProvider.GetAccessTokenForRequestAsync(); // then Assert.AreEqual("REQUESTED_TOKEN", token); Assert.AreEqual(1, MessageHandlerStub.RequestCount); }
public async Task ShouldGetTokenFromInMemory() { // given await TokenProvider.GetAccessTokenForRequestAsync(); var files = Directory.GetFiles(TokenStoragePath); var tokenFile = files[0]; File.WriteAllText(tokenFile, "FILE_TOKEN"); // when var token = await TokenProvider.GetAccessTokenForRequestAsync(); // then Assert.AreEqual("REQUESTED_TOKEN", token); Assert.AreEqual(1, MessageHandlerStub.RequestCount); }
public async Task ShouldNotThrowObjectDisposedExceptionWhenTokenExpires() { // given ExpiresIn = 0; var firstToken = await TokenProvider.GetAccessTokenForRequestAsync(); var files = Directory.GetFiles(TokenStoragePath); var tokenFile = files[0]; await File.WriteAllTextAsync(tokenFile, "FILE_TOKEN"); // when Token = "SECOND_TOKEN"; Assert.DoesNotThrowAsync(async() => await TokenProvider.GetAccessTokenForRequestAsync()); // then Assert.AreEqual(2, MessageHandlerStub.RequestCount); }
public async Task ShouldStoreCredentials() { // given // when var token = await TokenProvider.GetAccessTokenForRequestAsync(); // then Assert.AreEqual("REQUESTED_TOKEN", token); var files = Directory.GetFiles(TokenStoragePath); Assert.AreEqual(1, files.Length); var tokenFile = files[0]; var content = File.ReadAllText(tokenFile); var fileToken = JsonConvert.DeserializeObject <CamundaCloudTokenProvider.AccessToken>(content); Assert.AreEqual(token, fileToken.Token); }
public async Task ShouldRequestNewTokenWhenExpired() { // given ExpiresIn = 0; var firstToken = await TokenProvider.GetAccessTokenForRequestAsync(); var files = Directory.GetFiles(TokenStoragePath); var tokenFile = files[0]; File.WriteAllText(tokenFile, "FILE_TOKEN"); // when Token = "SECOND_TOKEN"; var secondToken = await TokenProvider.GetAccessTokenForRequestAsync(); // then Assert.AreEqual("REQUESTED_TOKEN", firstToken); Assert.AreNotEqual(secondToken, firstToken); Assert.AreEqual("SECOND_TOKEN", secondToken); Assert.AreEqual(2, MessageHandlerStub.RequestCount); }
public async Task ShouldUseCachedFileAndAfterwardsInMemory() { // given Token = "STORED_TOKEN"; await TokenProvider.GetAccessTokenForRequestAsync(); // re-init the TokenProvider Init(); // when await TokenProvider.GetAccessTokenForRequestAsync(); var files = Directory.GetFiles(TokenStoragePath); var tokenFile = files[0]; File.WriteAllText(tokenFile, "FILE_TOKEN"); var token = await TokenProvider.GetAccessTokenForRequestAsync(); // then Assert.AreEqual("STORED_TOKEN", token); Assert.AreEqual(0, MessageHandlerStub.RequestCount); }
public async Task ShouldNotUseCachedFileForOtherAudience() { // given Token = "STORED_TOKEN"; await TokenProvider.GetAccessTokenForRequestAsync(); var otherProvider = new CamundaCloudTokenProviderBuilder() .UseAuthServer(_requestUri) .UseClientId(_clientId = "OTHERID") .UseClientSecret(_clientSecret = "OTHERSECRET") .UseAudience(_audience = "OTHER_AUDIENCE") .Build(); otherProvider.SetHttpMessageHandler(MessageHandlerStub); otherProvider.TokenStoragePath = TokenStoragePath; Token = "OTHER_TOKEN"; // when var token = await otherProvider.GetAccessTokenForRequestAsync(); // then Assert.AreEqual("OTHER_TOKEN", token); }
public async Task ShouldExpireInOneSecond() { // given ExpiresIn = 1; var firstToken = await TokenProvider.GetAccessTokenForRequestAsync(); var files = Directory.GetFiles(TokenStoragePath); var tokenFile = files[0]; File.WriteAllText(tokenFile, "FILE_TOKEN"); // when Token = "NEW_TOKEN"; var secondToken = await TokenProvider.GetAccessTokenForRequestAsync(); Thread.Sleep(1_000); var thirdToken = await TokenProvider.GetAccessTokenForRequestAsync(); // then Assert.AreEqual("REQUESTED_TOKEN", firstToken); Assert.AreEqual(secondToken, firstToken); Assert.AreEqual("NEW_TOKEN", thirdToken); Assert.AreEqual(2, MessageHandlerStub.RequestCount); }