diff options
Diffstat (limited to 'src/DotNetOpenAuth.Test/OAuth')
-rw-r--r-- | src/DotNetOpenAuth.Test/OAuth/AppendixScenarios.cs | 100 | ||||
-rw-r--r-- | src/DotNetOpenAuth.Test/OAuth/ChannelElements/OAuthChannelTests.cs | 23 |
2 files changed, 59 insertions, 64 deletions
diff --git a/src/DotNetOpenAuth.Test/OAuth/AppendixScenarios.cs b/src/DotNetOpenAuth.Test/OAuth/AppendixScenarios.cs index 2d58b1d..0d05c5e 100644 --- a/src/DotNetOpenAuth.Test/OAuth/AppendixScenarios.cs +++ b/src/DotNetOpenAuth.Test/OAuth/AppendixScenarios.cs @@ -38,61 +38,57 @@ namespace DotNetOpenAuth.Test.OAuth { tokenManager.AddConsumer(consumerDescription); var sp = new ServiceProvider(serviceHostDescription, tokenManager); - var coordinator = new CoordinatorBase( - async (hostFactories, ct) => { - var consumer = new Consumer( - consumerDescription.ConsumerKey, - consumerDescription.ConsumerSecret, - serviceDescription, - new MemoryTemporaryCredentialStorage()); - consumer.HostFactories = hostFactories; - var authorizeUrl = await consumer.RequestUserAuthorizationAsync(new Uri("http://printer.example.com/request_token_ready")); - Uri authorizeResponseUri; - using (var httpClient = hostFactories.CreateHttpClient()) { - using (var response = await httpClient.GetAsync(authorizeUrl, ct)) { - Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Redirect)); - authorizeResponseUri = response.Headers.Location; - } - } + Handle(serviceDescription.TemporaryCredentialsRequestEndpoint).By( + async (request, ct) => { + var requestTokenMessage = await sp.ReadTokenRequestAsync(request, ct); + return await sp.Channel.PrepareResponseAsync(sp.PrepareUnauthorizedTokenMessage(requestTokenMessage)); + }); + Handle(serviceDescription.ResourceOwnerAuthorizationEndpoint).By( + async (request, ct) => { + var authRequest = await sp.ReadAuthorizationRequestAsync(request, ct); + ((InMemoryTokenManager)sp.TokenManager).AuthorizeRequestToken(authRequest.RequestToken); + return await sp.Channel.PrepareResponseAsync(sp.PrepareAuthorizationResponse(authRequest)); + }); + Handle(serviceDescription.TokenRequestEndpoint).By( + async (request, ct) => { + var accessRequest = await sp.ReadAccessTokenRequestAsync(request, ct); + return await sp.Channel.PrepareResponseAsync(sp.PrepareAccessTokenMessage(accessRequest), ct); + }); + Handle(accessPhotoEndpoint).By( + async (request, ct) => { + string accessToken = (await sp.ReadProtectedResourceAuthorizationAsync(request)).AccessToken; + Assert.That(accessToken, Is.Not.Null.And.Not.Empty); + var responseMessage = new HttpResponseMessage { Content = new ByteArrayContent(new byte[] { 0x33, 0x66 }), }; + responseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); + return responseMessage; + }); - var accessTokenResponse = await consumer.ProcessUserAuthorizationAsync(authorizeResponseUri, ct); - Assert.That(accessTokenResponse, Is.Not.Null); + var consumer = new Consumer( + consumerDescription.ConsumerKey, + consumerDescription.ConsumerSecret, + serviceDescription, + new MemoryTemporaryCredentialStorage()); + consumer.HostFactories = this.HostFactories; + var authorizeUrl = await consumer.RequestUserAuthorizationAsync(new Uri("http://printer.example.com/request_token_ready")); + Uri authorizeResponseUri; + using (var httpClient = this.HostFactories.CreateHttpClient()) { + using (var response = await httpClient.GetAsync(authorizeUrl)) { + Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.Redirect)); + authorizeResponseUri = response.Headers.Location; + } + } - using (var authorizingClient = consumer.CreateHttpClient(accessTokenResponse.AccessToken)) { - using (var protectedPhoto = await authorizingClient.GetAsync(accessPhotoEndpoint, ct)) { - Assert.That(protectedPhoto, Is.Not.Null); - protectedPhoto.EnsureSuccessStatusCode(); - Assert.That("image/jpeg", Is.EqualTo(protectedPhoto.Content.Headers.ContentType.MediaType)); - Assert.That(protectedPhoto.Content.Headers.ContentLength, Is.Not.EqualTo(0)); - } - } - }, - Handle(serviceDescription.TemporaryCredentialsRequestEndpoint).By( - async (request, ct) => { - var requestTokenMessage = await sp.ReadTokenRequestAsync(request, ct); - return await sp.Channel.PrepareResponseAsync(sp.PrepareUnauthorizedTokenMessage(requestTokenMessage)); - }), - Handle(serviceDescription.ResourceOwnerAuthorizationEndpoint).By( - async (request, ct) => { - var authRequest = await sp.ReadAuthorizationRequestAsync(request, ct); - ((InMemoryTokenManager)sp.TokenManager).AuthorizeRequestToken(authRequest.RequestToken); - return await sp.Channel.PrepareResponseAsync(sp.PrepareAuthorizationResponse(authRequest)); - }), - Handle(serviceDescription.TokenRequestEndpoint).By( - async (request, ct) => { - var accessRequest = await sp.ReadAccessTokenRequestAsync(request, ct); - return await sp.Channel.PrepareResponseAsync(sp.PrepareAccessTokenMessage(accessRequest), ct); - }), - Handle(accessPhotoEndpoint).By( - async (request, ct) => { - string accessToken = (await sp.ReadProtectedResourceAuthorizationAsync(request)).AccessToken; - Assert.That(accessToken, Is.Not.Null.And.Not.Empty); - var responseMessage = new HttpResponseMessage { Content = new ByteArrayContent(new byte[] { 0x33, 0x66 }), }; - responseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg"); - return responseMessage; - })); + var accessTokenResponse = await consumer.ProcessUserAuthorizationAsync(authorizeResponseUri); + Assert.That(accessTokenResponse, Is.Not.Null); - await coordinator.RunAsync(); + using (var authorizingClient = consumer.CreateHttpClient(accessTokenResponse.AccessToken)) { + using (var protectedPhoto = await authorizingClient.GetAsync(accessPhotoEndpoint)) { + Assert.That(protectedPhoto, Is.Not.Null); + protectedPhoto.EnsureSuccessStatusCode(); + Assert.That("image/jpeg", Is.EqualTo(protectedPhoto.Content.Headers.ContentType.MediaType)); + Assert.That(protectedPhoto.Content.Headers.ContentLength, Is.Not.EqualTo(0)); + } + } } } } diff --git a/src/DotNetOpenAuth.Test/OAuth/ChannelElements/OAuthChannelTests.cs b/src/DotNetOpenAuth.Test/OAuth/ChannelElements/OAuthChannelTests.cs index a1db784..834aba2 100644 --- a/src/DotNetOpenAuth.Test/OAuth/ChannelElements/OAuthChannelTests.cs +++ b/src/DotNetOpenAuth.Test/OAuth/ChannelElements/OAuthChannelTests.cs @@ -301,17 +301,8 @@ namespace DotNetOpenAuth.Test.OAuth.ChannelElements { HttpMethods = scheme, }; - await RunAsync( - async (hostFactories, CancellationToken) => { - IProtocolMessage response = await this.channel.RequestAsync(request, CancellationToken.None); - Assert.IsNotNull(response); - Assert.IsInstanceOf<TestMessage>(response); - TestMessage responseMessage = (TestMessage)response; - Assert.AreEqual(request.Age, responseMessage.Age); - Assert.AreEqual(request.Name, responseMessage.Name); - Assert.AreEqual(request.Location, responseMessage.Location); - }, - Handle(request.Location).By(async (req, ct) => { + Handle(request.Location).By( + async (req, ct) => { Assert.IsNotNull(req); Assert.AreEqual(MessagingUtilities.GetHttpVerb(scheme), req.Method); var incomingMessage = (await this.channel.ReadFromRequestAsync(req, CancellationToken.None)) as TestMessage; @@ -330,7 +321,15 @@ namespace DotNetOpenAuth.Test.OAuth.ChannelElements { var rawResponse = new HttpResponseMessage(); rawResponse.Content = new StringContent(MessagingUtilities.CreateQueryString(responseFields)); return rawResponse; - })); + }); + + IProtocolMessage response = await this.channel.RequestAsync(request, CancellationToken.None); + Assert.IsNotNull(response); + Assert.IsInstanceOf<TestMessage>(response); + TestMessage responseMessage = (TestMessage)response; + Assert.AreEqual(request.Age, responseMessage.Age); + Assert.AreEqual(request.Name, responseMessage.Name); + Assert.AreEqual(request.Location, responseMessage.Location); } private async Task ParameterizedReceiveTestAsync(HttpDeliveryMethods scheme) { |