diff options
Diffstat (limited to 'src/DotNetOpenAuth.Test/Mocks')
4 files changed, 24 insertions, 12 deletions
diff --git a/src/DotNetOpenAuth.Test/Mocks/CoordinatingChannel.cs b/src/DotNetOpenAuth.Test/Mocks/CoordinatingChannel.cs index 80351d4..b5fc321 100644 --- a/src/DotNetOpenAuth.Test/Mocks/CoordinatingChannel.cs +++ b/src/DotNetOpenAuth.Test/Mocks/CoordinatingChannel.cs @@ -127,7 +127,7 @@ namespace DotNetOpenAuth.Test.Mocks { /// <param name="message">The message that this channel should receive. This message will be cloned.</param> internal void PostMessage(IProtocolMessage message) { ErrorUtilities.VerifyInternal(this.incomingMessage == null, "Oops, a message is already waiting for the remote party!"); - this.incomingMessage = new Dictionary<string, string>(new MessageDictionary(message)); + this.incomingMessage = this.MessageDescriptions.GetAccessor(message).Serialize(); var directedMessage = message as IDirectedProtocolMessage; this.incomingMessageRecipient = directedMessage != null ? new MessageReceivingEndpoint(directedMessage.Recipient, directedMessage.HttpMethods) : null; this.incomingMessageSignal.Set(); @@ -137,7 +137,7 @@ namespace DotNetOpenAuth.Test.Mocks { MessageReceivingEndpoint recipient; var messageData = this.AwaitIncomingMessage(out recipient); if (messageData != null) { - return new CoordinatingHttpRequestInfo(this.MessageFactory, messageData, recipient); + return new CoordinatingHttpRequestInfo(this, this.MessageFactory, messageData, recipient); } else { return new CoordinatingHttpRequestInfo(recipient); } @@ -160,8 +160,8 @@ namespace DotNetOpenAuth.Test.Mocks { return null; } - var responseSerializer = MessageSerializer.Get(responseMessage.GetType()); - responseSerializer.Deserialize(responseData, responseMessage); + var responseAccessor = this.MessageDescriptions.GetAccessor(responseMessage); + responseAccessor.Deserialize(responseData); this.ProcessMessageFilter(responseMessage, false); return responseMessage; @@ -211,8 +211,8 @@ namespace DotNetOpenAuth.Test.Mocks { ErrorUtilities.VerifyArgumentNotNull(message, "message"); IProtocolMessage clonedMessage; - MessageSerializer serializer = MessageSerializer.Get(message.GetType()); - var fields = serializer.Serialize(message); + var messageAccessor = this.MessageDescriptions.GetAccessor(message); + var fields = messageAccessor.Serialize(); MessageReceivingEndpoint recipient = null; var directedMessage = message as IDirectedProtocolMessage; @@ -232,7 +232,8 @@ namespace DotNetOpenAuth.Test.Mocks { ErrorUtilities.VerifyInternal(clonedMessage != null, "Message factory did not generate a message instance for " + message.GetType().Name); // Fill the cloned message with data. - serializer.Deserialize(fields, clonedMessage); + var clonedMessageAccessor = this.MessageDescriptions.GetAccessor(clonedMessage); + clonedMessageAccessor.Deserialize(fields); return (T)clonedMessage; } diff --git a/src/DotNetOpenAuth.Test/Mocks/CoordinatingHttpRequestInfo.cs b/src/DotNetOpenAuth.Test/Mocks/CoordinatingHttpRequestInfo.cs index 5467045..f611552 100644 --- a/src/DotNetOpenAuth.Test/Mocks/CoordinatingHttpRequestInfo.cs +++ b/src/DotNetOpenAuth.Test/Mocks/CoordinatingHttpRequestInfo.cs @@ -13,18 +13,22 @@ namespace DotNetOpenAuth.Test.Mocks { private IDictionary<string, string> messageData; private IMessageFactory messageFactory; private MessageReceivingEndpoint recipient; + private Channel channel; /// <summary> /// Initializes a new instance of the <see cref="CoordinatingHttpRequestInfo"/> class /// that will generate a message when the <see cref="Message"/> property getter is called. /// </summary> + /// <param name="channel">The channel.</param> /// <param name="messageFactory">The message factory.</param> /// <param name="messageData">The message data.</param> /// <param name="recipient">The recipient.</param> - internal CoordinatingHttpRequestInfo(IMessageFactory messageFactory, IDictionary<string, string> messageData, MessageReceivingEndpoint recipient) + internal CoordinatingHttpRequestInfo(Channel channel, IMessageFactory messageFactory, IDictionary<string, string> messageData, MessageReceivingEndpoint recipient) : this(recipient) { + Contract.Requires(channel != null); Contract.Requires(messageFactory != null); Contract.Requires(messageData != null); + this.channel = channel; this.messageFactory = messageFactory; this.messageData = messageData; } @@ -49,7 +53,7 @@ namespace DotNetOpenAuth.Test.Mocks { if (base.Message == null && this.messageData != null) { IDirectedProtocolMessage message = this.messageFactory.GetNewRequestMessage(this.recipient, this.messageData); if (message != null) { - MessageSerializer.Get(message.GetType()).Deserialize(this.messageData, message); + this.channel.MessageDescriptions.GetAccessor(message).Deserialize(this.messageData); } base.Message = message; } diff --git a/src/DotNetOpenAuth.Test/Mocks/CoordinatingOAuthChannel.cs b/src/DotNetOpenAuth.Test/Mocks/CoordinatingOAuthChannel.cs index 4911a9c..a533815 100644 --- a/src/DotNetOpenAuth.Test/Mocks/CoordinatingOAuthChannel.cs +++ b/src/DotNetOpenAuth.Test/Mocks/CoordinatingOAuthChannel.cs @@ -125,8 +125,8 @@ namespace DotNetOpenAuth.Test.Mocks { ErrorUtilities.VerifyArgumentNotNull(message, "message"); IProtocolMessage clonedMessage; - MessageSerializer serializer = MessageSerializer.Get(message.GetType()); - var fields = serializer.Serialize(message); + var messageAccessor = this.MessageDescriptions.GetAccessor(message); + var fields = messageAccessor.Serialize(); MessageReceivingEndpoint recipient = null; var directedMessage = message as IDirectedProtocolMessage; @@ -144,7 +144,8 @@ namespace DotNetOpenAuth.Test.Mocks { } // Fill the cloned message with data. - serializer.Deserialize(fields, clonedMessage); + var clonedMessageAccessor = this.MessageDescriptions.GetAccessor(clonedMessage); + clonedMessageAccessor.Deserialize(fields); return (T)clonedMessage; } diff --git a/src/DotNetOpenAuth.Test/Mocks/TestChannel.cs b/src/DotNetOpenAuth.Test/Mocks/TestChannel.cs index a65b39c..a72ab63 100644 --- a/src/DotNetOpenAuth.Test/Mocks/TestChannel.cs +++ b/src/DotNetOpenAuth.Test/Mocks/TestChannel.cs @@ -9,12 +9,18 @@ namespace DotNetOpenAuth.Test.Mocks { using System.Collections.Generic; using System.Net; using DotNetOpenAuth.Messaging; + using DotNetOpenAuth.Messaging.Reflection; internal class TestChannel : Channel { internal TestChannel() : this(new TestMessageFactory()) { } + internal TestChannel(MessageDescriptionCollection messageDescriptions) + : this() { + this.MessageDescriptions = messageDescriptions; + } + internal TestChannel(IMessageFactory messageTypeProvider, params IChannelBindingElement[] bindingElements) : base(messageTypeProvider, bindingElements) { } |