public async Task ShouldNotSetBearerToken()
        {
            // Arrange
            var tokenStore = A.Fake <ITokenStore>();
            var handler    = new OAuthHttpClientHandler("tokenid", tokenStore, null)
            {
                InnerHandler = new TestHandler((r, c) => TestHandler.ReturnOk())
            };
            var client = new HttpClient(handler);

            // Act
            await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "http://test/"));

            // Assert
            A.CallTo(() => tokenStore.GetToken("tokenid")).Throws(new KeyNotFoundException());
        }
        public async Task ShouldSetCredentials()
        {
            // Arrange
            var handler = new CredentialsHttpClientHandler("username", "password")
            {
                InnerHandler = new TestHandler((r, c) => TestHandler.ReturnOk())
            };
            var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, "http://test/");
            var httpClient         = new HttpClient(handler);

            // Act
            await httpClient.SendAsync(httpRequestMessage);

            // Assert
            httpRequestMessage.Headers.Authorization.Should().Be(new Thinktecture.IdentityModel.Client.BasicAuthenticationHeaderValue("username", "password"));
        }
        public async Task ShouldSetBearerToken()
        {
            // Arrange
            var tokenStore = A.Fake <ITokenStore>();

            A.CallTo(() => tokenStore.GetToken("tokenid")).Returns(new TokenCredential {
                AccessToken = "access_token"
            });
            var handler = new OAuthHttpClientHandler("tokenid", tokenStore, null)
            {
                InnerHandler = new TestHandler((r, c) => TestHandler.ReturnOk())
            };
            var httpRequestMessage = new HttpRequestMessage(HttpMethod.Get, "http://test/");
            var client             = new HttpClient(handler);
            // Act

            await client.SendAsync(httpRequestMessage);

            // Assert
            httpRequestMessage.Headers.Authorization.Should().Be(new AuthenticationHeaderValue("Bearer", "access_token"));
        }
 public TestingOAuth2Client(string accessToken, string refreshToken)
     : base(new Uri("http://test/"), new TestHandler((r, c) => TestHandler.ReturnOk(new StringContent(JsonConvert.SerializeObject(new { access_token  = accessToken,
                                                                                                                                        refresh_token = refreshToken })))))
 {
 }