summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2008-12-21 18:13:08 -0800
committerAndrew <andrewarnott@gmail.com>2008-12-21 18:13:08 -0800
commit794143c7bf52f24a11a7c0e1be7efca431715e25 (patch)
tree7796e4cc433b22fe420ce47389e07eaa5e296256 /src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs
parent08ab45d4b14b9360cfe2ad9b667cf7c0acf86c98 (diff)
downloadDotNetOpenAuth-794143c7bf52f24a11a7c0e1be7efca431715e25.zip
DotNetOpenAuth-794143c7bf52f24a11a7c0e1be7efca431715e25.tar.gz
DotNetOpenAuth-794143c7bf52f24a11a7c0e1be7efca431715e25.tar.bz2
Added a mock extension and test in order to focus the test on the extension binding element.
Diffstat (limited to 'src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs')
-rw-r--r--src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs
index 95026d4..b47ff55 100644
--- a/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs
+++ b/src/DotNetOpenAuth.Test/OpenId/Extensions/ExtensionTestBase.cs
@@ -14,28 +14,24 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions {
using DotNetOpenAuth.OpenId.Messages;
using DotNetOpenAuth.Test.Messaging;
using Microsoft.VisualStudio.TestTools.UnitTesting;
+ using DotNetOpenAuth.OpenId.ChannelElements;
+ using DotNetOpenAuth.OpenId.Extensions;
- public class ExtensionTestBase : OpenIdTestBase {
- protected const ProtocolVersion Version = ProtocolVersion.V20;
-
- [TestInitialize]
- public override void SetUp() {
- base.SetUp();
- }
-
- internal void Roundtrip(
+ public static class ExtensionTestUtilities {
+ internal static void Roundtrip(
Protocol protocol,
IEnumerable<IOpenIdMessageExtension> requests,
IEnumerable<IOpenIdMessageExtension> responses) {
Association association = HmacShaAssociation.Create(protocol, protocol.Args.SignatureAlgorithm.Best, AssociationRelyingPartyType.Smart);
var coordinator = new OpenIdCoordinator(
rp => {
- var requestBase = new CheckIdRequest(protocol.Version, ProviderUri, true);
- rp.AssociationStore.StoreAssociation(ProviderUri, association);
+ RegisterExtension(rp.Channel, Mocks.MockOpenIdExtension.Factory);
+ var requestBase = new CheckIdRequest(protocol.Version, OpenIdTestBase.ProviderUri, true);
+ rp.AssociationStore.StoreAssociation(OpenIdTestBase.ProviderUri, association);
requestBase.AssociationHandle = association.Handle;
requestBase.ClaimedIdentifier = "http://claimedid";
requestBase.LocalIdentifier = "http://localid";
- requestBase.ReturnTo = RPUri;
+ requestBase.ReturnTo = OpenIdTestBase.RPUri;
foreach (IOpenIdMessageExtension extension in requests) {
requestBase.Extensions.Add(extension);
@@ -48,6 +44,7 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions {
CollectionAssert<IOpenIdMessageExtension>.AreEquivalentByEquality(responses.ToArray(), receivedResponses.ToArray());
},
op => {
+ RegisterExtension(op.Channel, Mocks.MockOpenIdExtension.Factory);
op.AssociationStore.StoreAssociation(AssociationRelyingPartyType.Smart, association);
var request = op.Channel.ReadFromRequest<CheckIdRequest>();
var response = new PositiveAssertionResponse(request);
@@ -62,5 +59,12 @@ namespace DotNetOpenAuth.Test.OpenId.Extensions {
});
coordinator.Run();
}
+
+ internal static void RegisterExtension(Channel channel, OpenIdExtensionFactory.CreateDelegate extensionFactory) {
+ ErrorUtilities.VerifyArgumentNotNull(channel, "channel");
+
+ OpenIdExtensionFactory factory = (OpenIdExtensionFactory)channel.BindingElements.OfType<ExtensionsBindingElement>().Single().ExtensionFactory;
+ factory.RegisterExtension(extensionFactory);
+ }
}
}