diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2008-11-20 06:54:14 -0800 |
---|---|---|
committer | Andrew <andrewarnott@gmail.com> | 2008-11-20 06:54:14 -0800 |
commit | 1a882368e2e99e9360cfd1f4f23f5acb70306436 (patch) | |
tree | ab0d370a8b8b9d5b638524f189a39991970834bb /src/DotNetOpenAuth.Test/Messaging | |
parent | d51be63270463542a308a9a2cef992b7d55baaa6 (diff) | |
download | DotNetOpenAuth-1a882368e2e99e9360cfd1f4f23f5acb70306436.zip DotNetOpenAuth-1a882368e2e99e9360cfd1f4f23f5acb70306436.tar.gz DotNetOpenAuth-1a882368e2e99e9360cfd1f4f23f5acb70306436.tar.bz2 |
Reworked the way messages are instantiated and deserialized.
This was a whole lot of work to just get multi-version capability added to message types so that OpenID could handle its few versions.
Diffstat (limited to 'src/DotNetOpenAuth.Test/Messaging')
5 files changed, 19 insertions, 15 deletions
diff --git a/src/DotNetOpenAuth.Test/Messaging/ChannelTests.cs b/src/DotNetOpenAuth.Test/Messaging/ChannelTests.cs index 4127b5a..0176164 100644 --- a/src/DotNetOpenAuth.Test/Messaging/ChannelTests.cs +++ b/src/DotNetOpenAuth.Test/Messaging/ChannelTests.cs @@ -41,7 +41,7 @@ namespace DotNetOpenAuth.Test.Messaging { [TestMethod, ExpectedException(typeof(ArgumentException))] public void SendIndirectedUndirectedMessage() { - IProtocolMessage message = new TestMessage(MessageTransport.Indirect); + IProtocolMessage message = new TestDirectedMessage(MessageTransport.Indirect); this.Channel.Send(message); } @@ -150,7 +150,7 @@ namespace DotNetOpenAuth.Test.Messaging { /// </remarks> [TestMethod, ExpectedException(typeof(NotImplementedException), "SendDirectMessageResponse")] public void SendDirectMessageResponse() { - IProtocolMessage message = new TestMessage { + IProtocolMessage message = new TestDirectedMessage { Age = 15, Name = "Andrew", Location = new Uri("http://host/path"), @@ -232,14 +232,14 @@ namespace DotNetOpenAuth.Test.Messaging { [TestMethod, ExpectedException(typeof(ProtocolException))] public void MessageExpirationWithoutTamperResistance() { new TestChannel( - new TestMessageTypeProvider(), + new TestMessageFactory(), new StandardExpirationBindingElement()); } [TestMethod, ExpectedException(typeof(ProtocolException))] public void TooManyBindingElementsProvidingSameProtection() { new TestChannel( - new TestMessageTypeProvider(), + new TestMessageFactory(), new MockSigningBindingElement(), new MockSigningBindingElement()); } @@ -253,7 +253,7 @@ namespace DotNetOpenAuth.Test.Messaging { IChannelBindingElement expire = new StandardExpirationBindingElement(); Channel channel = new TestChannel( - new TestMessageTypeProvider(), + new TestMessageFactory(), sign, replay, expire, diff --git a/src/DotNetOpenAuth.Test/Messaging/MessageSerializerTests.cs b/src/DotNetOpenAuth.Test/Messaging/MessageSerializerTests.cs index 62b6393..3bcca10 100644 --- a/src/DotNetOpenAuth.Test/Messaging/MessageSerializerTests.cs +++ b/src/DotNetOpenAuth.Test/Messaging/MessageSerializerTests.cs @@ -65,7 +65,8 @@ namespace DotNetOpenAuth.Test.Messaging { fields["Name"] = "Andrew"; fields["age"] = "15"; fields["Timestamp"] = "1990-01-01T00:00:00"; - var actual = (Mocks.TestMessage)serializer.Deserialize(fields, null); + var actual = new Mocks.TestDirectedMessage(); + serializer.Deserialize(fields, actual); Assert.AreEqual(15, actual.Age); Assert.AreEqual("Andrew", actual.Name); Assert.AreEqual(DateTime.Parse("1/1/1990"), actual.Timestamp); @@ -94,7 +95,8 @@ namespace DotNetOpenAuth.Test.Messaging { fields["SecondDerivedElement"] = "second"; fields["explicit"] = "explicitValue"; fields["private"] = "privateValue"; - var actual = (Mocks.TestDerivedMessage)serializer.Deserialize(fields, null); + var actual = new Mocks.TestDerivedMessage(); + serializer.Deserialize(fields, actual); Assert.AreEqual(15, actual.Age); Assert.AreEqual("Andrew", actual.Name); Assert.AreEqual("first", actual.TheFirstDerivedElement); @@ -113,7 +115,8 @@ namespace DotNetOpenAuth.Test.Messaging { // Add some field that is not recognized by the class. This simulates a querystring with // more parameters than are actually interesting to the protocol message. fields["someExtraField"] = "asdf"; - var actual = (Mocks.TestMessage)serializer.Deserialize(fields, null); + var actual = new Mocks.TestDirectedMessage(); + serializer.Deserialize(fields, actual); Assert.AreEqual(15, actual.Age); Assert.AreEqual("Andrew", actual.Name); Assert.IsNull(actual.EmptyMember); @@ -121,10 +124,11 @@ namespace DotNetOpenAuth.Test.Messaging { [TestMethod, ExpectedException(typeof(ProtocolException))] public void DeserializeInvalidMessage() { - var serializer = MessageSerializer.Get(typeof(Mocks.TestMessage)); + IProtocolMessage message = new Mocks.TestDirectedMessage(); + var serializer = MessageSerializer.Get(message.GetType()); var fields = GetStandardTestFields(FieldFill.AllRequired); fields["age"] = "-1"; // Set an disallowed value. - serializer.Deserialize(fields, null); + serializer.Deserialize(fields, message); } } } diff --git a/src/DotNetOpenAuth.Test/Messaging/MessagingTestBase.cs b/src/DotNetOpenAuth.Test/Messaging/MessagingTestBase.cs index acaf4a0..0a11a75 100644 --- a/src/DotNetOpenAuth.Test/Messaging/MessagingTestBase.cs +++ b/src/DotNetOpenAuth.Test/Messaging/MessagingTestBase.cs @@ -26,7 +26,7 @@ namespace DotNetOpenAuth.Test { None, /// <summary> - /// Only enough fields for the <see cref="TestMessageTypeProvider"/> + /// Only enough fields for the <see cref="TestMessageFactory"/> /// to identify the message are included. /// </summary> IdentifiableButNotAllRequired, @@ -105,7 +105,7 @@ namespace DotNetOpenAuth.Test { replay = true; } - var typeProvider = new TestMessageTypeProvider(signing, expiration, replay); + var typeProvider = new TestMessageFactory(signing, expiration, replay); return new TestChannel(typeProvider, bindingElements.ToArray()); } @@ -128,7 +128,7 @@ namespace DotNetOpenAuth.Test { } internal static TestMessage GetStandardTestMessage(FieldFill fill) { - TestMessage message = new TestMessage(); + TestMessage message = new TestDirectedMessage(); GetStandardTestMessage(fill, message); return message; } diff --git a/src/DotNetOpenAuth.Test/Messaging/ProtocolExceptionTests.cs b/src/DotNetOpenAuth.Test/Messaging/ProtocolExceptionTests.cs index a2e3eaa..02aea64 100644 --- a/src/DotNetOpenAuth.Test/Messaging/ProtocolExceptionTests.cs +++ b/src/DotNetOpenAuth.Test/Messaging/ProtocolExceptionTests.cs @@ -32,7 +32,7 @@ namespace DotNetOpenAuth.Test.Messaging { [TestMethod] public void CtorWithProtocolMessage() { - IProtocolMessage request = new Mocks.TestMessage(); + IProtocolMessage request = new Mocks.TestDirectedMessage(); Uri receiver = new Uri("http://receiver"); ProtocolException ex = new ProtocolException("some error occurred", request, receiver); IDirectedProtocolMessage msg = (IDirectedProtocolMessage)ex; diff --git a/src/DotNetOpenAuth.Test/Messaging/Reflection/MessageDictionaryTests.cs b/src/DotNetOpenAuth.Test/Messaging/Reflection/MessageDictionaryTests.cs index 039743e..0175173 100644 --- a/src/DotNetOpenAuth.Test/Messaging/Reflection/MessageDictionaryTests.cs +++ b/src/DotNetOpenAuth.Test/Messaging/Reflection/MessageDictionaryTests.cs @@ -22,7 +22,7 @@ namespace DotNetOpenAuth.Test.Messaging.Reflection { public override void SetUp() { base.SetUp(); - this.message = new Mocks.TestMessage(); + this.message = new Mocks.TestDirectedMessage(); } [TestMethod, ExpectedException(typeof(ArgumentNullException))] |