public void TestTokenFetched() { if (TestConfiguration.AuthType != AuthType.JWT) { Assert.Ignore($"Unsupported TestConfiguration.AuthType={TestConfiguration.AuthType}"); } // arrange var jwtHandler = new JwtRequestHandler(TestConfiguration); jwtHandler.ProcessUrl("http://some url/"); // act HttpWebRequest request = _requestFactory.Object.Create("http://some url/"); jwtHandler.BeforeSend(request, new MemoryStream()); Assert.Contains("Authorization", request.Headers.Keys); var auth = request.Headers["Authorization"]; Assert.Greater(auth.Length, "Bearer ".Length); var token = auth.Substring("Bearer ".Length); AssertTokenIsValid(token); }
public void TestTokenRefresh() { if (TestConfiguration.AuthType != AuthType.JWT) { Assert.Ignore($"Unsupported TestConfiguration.AuthType={TestConfiguration.AuthType}"); } // arrange HttpWebRequest unauthorizedRequest = _requestFactory.Object.Create("http://some url/"); unauthorizedRequest.Method = WebRequestMethods.Http.Get; var response401 = (HttpWebResponse)unauthorizedRequest.GetResponse(); Assert.AreEqual(HttpStatusCode.Unauthorized, response401.StatusCode); var jwtHandler = new JwtRequestHandler(TestConfiguration); // act Assert.Throws <NeedRepeatRequestException>( () => { // Should manage 401, fetch new token and store it // And throw NeedRepeatRequestException jwtHandler.ProcessResponse(response401, new MemoryStream()); }); HttpWebRequest request2 = _requestFactory.Object.Create("http://some url/"); jwtHandler.BeforeSend(request2, new MemoryStream()); Assert.Contains("Authorization", request2.Headers.Keys); var auth = request2.Headers["Authorization"]; Assert.Greater(auth.Length, "Bearer ".Length); var token = auth.Substring("Bearer ".Length); AssertTokenIsValid(token); }