diff options
Diffstat (limited to 'src/DotNetOpenAuth.Test/OpenId/Extensions')
6 files changed, 44 insertions, 89 deletions
diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/AttributeExchange/AttributeExchangeRoundtripTests.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/AttributeExchange/AttributeExchangeRoundtripTests.cs index ab0a10b..0d0d36c 100644 --- a/src/DotNetOpenAuth.Test/OpenId/Extensions/AttributeExchange/AttributeExchangeRoundtripTests.cs +++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/AttributeExchange/AttributeExchangeRoundtripTests.cs @@ -5,6 +5,8 @@ //----------------------------------------------------------------------- namespace DotNetOpenAuth.Test.OpenId.Extensions { + using System.Threading.Tasks; + using DotNetOpenAuth.OpenId; using DotNetOpenAuth.OpenId.Extensions.AttributeExchange; using NUnit.Framework; @@ -17,7 +19,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { private int incrementingAttributeValue = 1; [Test] - public void Fetch() { + public async Task Fetch() { var request = new FetchRequest(); request.Attributes.Add(new AttributeRequest(NicknameTypeUri)); request.Attributes.Add(new AttributeRequest(EmailTypeUri, false, int.MaxValue)); @@ -26,11 +28,11 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { response.Attributes.Add(new AttributeValues(NicknameTypeUri, "Andrew")); response.Attributes.Add(new AttributeValues(EmailTypeUri, "a@a.com", "b@b.com")); - ExtensionTestUtilities.Roundtrip(Protocol.Default, new[] { request }, new[] { response }); + await this.RoundtripAsync(Protocol.Default, new[] { request }, new[] { response }); } [Test] - public void Store() { + public async Task Store() { var request = new StoreRequest(); var newAttribute = new AttributeValues( IncrementingAttribute, @@ -41,13 +43,13 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { var successResponse = new StoreResponse(); successResponse.Succeeded = true; - ExtensionTestUtilities.Roundtrip(Protocol.Default, new[] { request }, new[] { successResponse }); + await this.RoundtripAsync(Protocol.Default, new[] { request }, new[] { successResponse }); var failureResponse = new StoreResponse(); failureResponse.Succeeded = false; failureResponse.FailureReason = "Some error"; - ExtensionTestUtilities.Roundtrip(Protocol.Default, new[] { request }, new[] { failureResponse }); + await this.RoundtripAsync(Protocol.Default, new[] { request }, new[] { failureResponse }); } } } diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs index 8d0e6ff..fd53fd1 100644 --- a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs +++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestUtilities.cs @@ -8,6 +8,10 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { using System; using System.Collections.Generic; using System.Linq; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + using DotNetOpenAuth.Messaging; using DotNetOpenAuth.Messaging.Bindings; using DotNetOpenAuth.OpenId; @@ -20,62 +24,6 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { using Validation; public static class ExtensionTestUtilities { - /// <summary> - /// Simulates an extension request and response. - /// </summary> - /// <param name="protocol">The protocol to use in the roundtripping.</param> - /// <param name="requests">The extensions to add to the request message.</param> - /// <param name="responses">The extensions to add to the response message.</param> - /// <remarks> - /// This method relies on the extension objects' Equals methods to verify - /// accurate transport. The Equals methods should be verified by separate tests. - /// </remarks> - internal static void Roundtrip( - Protocol protocol, - IEnumerable<IOpenIdMessageExtension> requests, - IEnumerable<IOpenIdMessageExtension> responses) { - var securitySettings = new ProviderSecuritySettings(); - var cryptoKeyStore = new MemoryCryptoKeyStore(); - var associationStore = new ProviderAssociationHandleEncoder(cryptoKeyStore); - Association association = HmacShaAssociationProvider.Create(protocol, protocol.Args.SignatureAlgorithm.Best, AssociationRelyingPartyType.Smart, associationStore, securitySettings); - var coordinator = new OpenIdCoordinator( - rp => { - RegisterExtension(rp.Channel, Mocks.MockOpenIdExtension.Factory); - var requestBase = new CheckIdRequest(protocol.Version, OpenIdTestBase.OPUri, AuthenticationRequestMode.Immediate); - OpenIdTestBase.StoreAssociation(rp, OpenIdTestBase.OPUri, association); - requestBase.AssociationHandle = association.Handle; - requestBase.ClaimedIdentifier = "http://claimedid"; - requestBase.LocalIdentifier = "http://localid"; - requestBase.ReturnTo = OpenIdTestBase.RPUri; - - foreach (IOpenIdMessageExtension extension in requests) { - requestBase.Extensions.Add(extension); - } - - rp.Channel.Respond(requestBase); - var response = rp.Channel.ReadFromRequest<PositiveAssertionResponse>(); - - var receivedResponses = response.Extensions.Cast<IOpenIdMessageExtension>(); - CollectionAssert<IOpenIdMessageExtension>.AreEquivalentByEquality(responses.ToArray(), receivedResponses.ToArray()); - }, - op => { - RegisterExtension(op.Channel, Mocks.MockOpenIdExtension.Factory); - var key = cryptoKeyStore.GetCurrentKey(ProviderAssociationHandleEncoder.AssociationHandleEncodingSecretBucket, TimeSpan.FromSeconds(1)); - op.CryptoKeyStore.StoreKey(ProviderAssociationHandleEncoder.AssociationHandleEncodingSecretBucket, key.Key, key.Value); - var request = op.Channel.ReadFromRequest<CheckIdRequest>(); - var response = new PositiveAssertionResponse(request); - var receivedRequests = request.Extensions.Cast<IOpenIdMessageExtension>(); - CollectionAssert<IOpenIdMessageExtension>.AreEquivalentByEquality(requests.ToArray(), receivedRequests.ToArray()); - - foreach (var extensionResponse in responses) { - response.Extensions.Add(extensionResponse); - } - - op.Channel.Respond(response); - }); - coordinator.Run(); - } - internal static void RegisterExtension(Channel channel, StandardOpenIdExtensionFactory.CreateDelegate extensionFactory) { Requires.NotNull(channel, "channel"); diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperOPTests.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperOPTests.cs index e9ff7a4..60075f3 100644 --- a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperOPTests.cs +++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperOPTests.cs @@ -7,6 +7,8 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { using System.Collections.Generic; using System.Linq; + using System.Threading; + using System.Threading.Tasks; using DotNetOpenAuth.Messaging; using DotNetOpenAuth.OpenId; using DotNetOpenAuth.OpenId.Extensions; @@ -38,7 +40,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { /// Verifies no extensions appear as no extensions /// </summary> [Test] - public void NoRequestedExtensions() { + public async Task NoRequestedExtensions() { var sreg = ExtensionsInteropHelper.UnifyExtensionsAsSreg(this.request); Assert.IsNull(sreg); @@ -47,22 +49,22 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { // to directly create a response without a request. var sregResponse = new ClaimsResponse(); this.request.AddResponseExtension(sregResponse); - ExtensionsInteropHelper.ConvertSregToMatchRequest(this.request); - var extensions = this.GetResponseExtensions(); + await ExtensionsInteropHelper.ConvertSregToMatchRequestAsync(this.request, CancellationToken.None); + var extensions = await this.GetResponseExtensionsAsync(); Assert.AreSame(sregResponse, extensions.Single()); } [Test] - public void NegativeResponse() { + public async Task NegativeResponse() { this.request.IsAuthenticated = false; - ExtensionsInteropHelper.ConvertSregToMatchRequest(this.request); + await ExtensionsInteropHelper.ConvertSregToMatchRequestAsync(this.request, CancellationToken.None); } /// <summary> /// Verifies sreg coming in is seen as sreg. /// </summary> [Test] - public void UnifyExtensionsAsSregWithSreg() { + public async Task UnifyExtensionsAsSregWithSreg() { var sregInjected = new ClaimsRequest(DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.Constants.TypeUris.Standard) { Nickname = DemandLevel.Request, }; @@ -74,8 +76,8 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { var sregResponse = sreg.CreateResponse(); this.request.AddResponseExtension(sregResponse); - ExtensionsInteropHelper.ConvertSregToMatchRequest(this.request); - var extensions = this.GetResponseExtensions(); + await ExtensionsInteropHelper.ConvertSregToMatchRequestAsync(this.request, CancellationToken.None); + var extensions = await this.GetResponseExtensionsAsync(); Assert.AreSame(sregResponse, extensions.Single()); } @@ -83,23 +85,23 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { /// Verifies AX coming in looks like sreg. /// </summary> [Test] - public void UnifyExtensionsAsSregWithAX() { - this.ParameterizedAXTest(AXAttributeFormats.AXSchemaOrg); + public async Task UnifyExtensionsAsSregWithAX() { + await this.ParameterizedAXTestAsync(AXAttributeFormats.AXSchemaOrg); } /// <summary> /// Verifies AX coming in looks like sreg. /// </summary> [Test] - public void UnifyExtensionsAsSregWithAXSchemaOpenIdNet() { - this.ParameterizedAXTest(AXAttributeFormats.SchemaOpenIdNet); + public async Task UnifyExtensionsAsSregWithAXSchemaOpenIdNet() { + await this.ParameterizedAXTestAsync(AXAttributeFormats.SchemaOpenIdNet); } /// <summary> /// Verifies sreg and AX in one request has a preserved sreg request. /// </summary> [Test] - public void UnifyExtensionsAsSregWithBothSregAndAX() { + public async Task UnifyExtensionsAsSregWithBothSregAndAX() { var sregInjected = new ClaimsRequest(DotNetOpenAuth.OpenId.Extensions.SimpleRegistration.Constants.TypeUris.Standard) { Nickname = DemandLevel.Request, }; @@ -118,20 +120,20 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { var axResponseInjected = new FetchResponse(); axResponseInjected.Attributes.Add(WellKnownAttributes.Contact.Email, "a@b.com"); this.request.AddResponseExtension(axResponseInjected); - ExtensionsInteropHelper.ConvertSregToMatchRequest(this.request); - var extensions = this.GetResponseExtensions(); + await ExtensionsInteropHelper.ConvertSregToMatchRequestAsync(this.request, CancellationToken.None); + var extensions = await this.GetResponseExtensionsAsync(); var sregResponse = extensions.OfType<ClaimsResponse>().Single(); Assert.AreEqual("andy", sregResponse.Nickname); var axResponse = extensions.OfType<FetchResponse>().Single(); Assert.AreEqual("a@b.com", axResponse.GetAttributeValue(WellKnownAttributes.Contact.Email)); } - private IList<IExtensionMessage> GetResponseExtensions() { - IProtocolMessageWithExtensions response = (IProtocolMessageWithExtensions)this.request.Response; + private async Task<IList<IExtensionMessage>> GetResponseExtensionsAsync() { + var response = (IProtocolMessageWithExtensions)await this.request.GetResponseAsync(CancellationToken.None); return response.Extensions; } - private void ParameterizedAXTest(AXAttributeFormats format) { + private async Task ParameterizedAXTestAsync(AXAttributeFormats format) { var axInjected = new FetchRequest(); axInjected.Attributes.AddOptional(ExtensionsInteropHelper.TransformAXFormatTestHook(WellKnownAttributes.Name.Alias, format)); axInjected.Attributes.AddRequired(ExtensionsInteropHelper.TransformAXFormatTestHook(WellKnownAttributes.Name.FullName, format)); @@ -145,8 +147,8 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { var sregResponse = sreg.CreateResponse(); sregResponse.Nickname = "andy"; this.request.AddResponseExtension(sregResponse); - ExtensionsInteropHelper.ConvertSregToMatchRequest(this.request); - var extensions = this.GetResponseExtensions(); + await ExtensionsInteropHelper.ConvertSregToMatchRequestAsync(this.request, CancellationToken.None); + var extensions = await this.GetResponseExtensionsAsync(); var axResponse = extensions.OfType<FetchResponse>().Single(); Assert.AreEqual("andy", axResponse.GetAttributeValue(ExtensionsInteropHelper.TransformAXFormatTestHook(WellKnownAttributes.Name.Alias, format))); } diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperRPRequestTests.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperRPRequestTests.cs index 05ba3ad..055cf8c 100644 --- a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperRPRequestTests.cs +++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionsInteropHelperRPRequestTests.cs @@ -27,7 +27,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { var rp = CreateRelyingParty(true); Identifier identifier = this.GetMockIdentifier(ProtocolVersion.V20); - this.authReq = (AuthenticationRequest)rp.CreateRequest(identifier, RPRealmUri, RPUri); + this.authReq = (AuthenticationRequest)rp.CreateRequestAsync(identifier, RPRealmUri, RPUri).Result; this.sreg = new ClaimsRequest { Nickname = DemandLevel.Request, FullName = DemandLevel.Request, diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/ProviderAuthenticationPolicy/PapeRoundTripTests.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/ProviderAuthenticationPolicy/PapeRoundTripTests.cs index cba54bf..3cb3028 100644 --- a/src/DotNetOpenAuth.Test/OpenId/Extensions/ProviderAuthenticationPolicy/PapeRoundTripTests.cs +++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/ProviderAuthenticationPolicy/PapeRoundTripTests.cs @@ -6,6 +6,8 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions.ProviderAuthenticationPolicy { using System; + using System.Threading.Tasks; + using DotNetOpenAuth.OpenId; using DotNetOpenAuth.OpenId.Extensions.ProviderAuthenticationPolicy; using DotNetOpenAuth.Test.OpenId.Extensions; @@ -14,14 +16,14 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions.ProviderAuthenticationPolicy { [TestFixture] public class PapeRoundTripTests : OpenIdTestBase { [Test] - public void Trivial() { + public async Task Trivial() { var request = new PolicyRequest(); var response = new PolicyResponse(); - ExtensionTestUtilities.Roundtrip(Protocol.Default, new[] { request }, new[] { response }); + await this.RoundtripAsync(Protocol.Default, new[] { request }, new[] { response }); } [Test] - public void Full() { + public async Task Full() { var request = new PolicyRequest(); request.MaximumAuthenticationAge = TimeSpan.FromMinutes(10); request.PreferredAuthLevelTypes.Add(Constants.AssuranceLevels.NistTypeUri); @@ -37,7 +39,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions.ProviderAuthenticationPolicy { response.AssuranceLevels["customlevel"] = "ABC"; response.NistAssuranceLevel = NistAssuranceLevel.Level2; - ExtensionTestUtilities.Roundtrip(Protocol.Default, new[] { request }, new[] { response }); + await this.RoundtripAsync(Protocol.Default, new[] { request }, new[] { response }); } } } diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistration/ClaimsResponseTests.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistration/ClaimsResponseTests.cs index f898511..1aa6e33 100644 --- a/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistration/ClaimsResponseTests.cs +++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/SimpleRegistration/ClaimsResponseTests.cs @@ -10,13 +10,14 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; + using System.Threading.Tasks; using System.Xml.Serialization; using DotNetOpenAuth.OpenId; using DotNetOpenAuth.OpenId.Extensions.SimpleRegistration; using NUnit.Framework; [TestFixture] - public class ClaimsResponseTests { + public class ClaimsResponseTests : OpenIdTestBase { [Test] public void EmptyMailAddress() { ClaimsResponse response = new ClaimsResponse(Constants.TypeUris.Standard); @@ -132,14 +133,14 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions { } [Test] - public void ResponseAlternateTypeUriTests() { + public async Task ResponseAlternateTypeUriTests() { var request = new ClaimsRequest(Constants.TypeUris.Variant10); request.Email = DemandLevel.Require; var response = new ClaimsResponse(Constants.TypeUris.Variant10); response.Email = "a@b.com"; - ExtensionTestUtilities.Roundtrip(Protocol.Default, new[] { request }, new[] { response }); + await this.RoundtripAsync(Protocol.Default, new[] { request }, new[] { response }); } private ClaimsResponse GetFilledData() { |