summaryrefslogtreecommitdiffstats
path: root/src/DotNetOAuth.Test/MessageSerializerTest.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2008-08-30 11:27:51 -0700
committerAndrew <andrewarnott@gmail.com>2008-09-01 11:02:40 -0700
commit36f545864647177b36a4c8f26af0e842fda86e88 (patch)
tree274876b73b39361c70a7591015a62c28ddb60261 /src/DotNetOAuth.Test/MessageSerializerTest.cs
parent5df67c5b5bbd0c7463cec9b1f594d18de345a7d5 (diff)
downloadDotNetOpenAuth-36f545864647177b36a4c8f26af0e842fda86e88.zip
DotNetOpenAuth-36f545864647177b36a4c8f26af0e842fda86e88.tar.gz
DotNetOpenAuth-36f545864647177b36a4c8f26af0e842fda86e88.tar.bz2
Added message validation.
Diffstat (limited to 'src/DotNetOAuth.Test/MessageSerializerTest.cs')
-rw-r--r--src/DotNetOAuth.Test/MessageSerializerTest.cs85
1 files changed, 61 insertions, 24 deletions
diff --git a/src/DotNetOAuth.Test/MessageSerializerTest.cs b/src/DotNetOAuth.Test/MessageSerializerTest.cs
index e105ded..7f576aa 100644
--- a/src/DotNetOAuth.Test/MessageSerializerTest.cs
+++ b/src/DotNetOAuth.Test/MessageSerializerTest.cs
@@ -12,14 +12,62 @@ namespace DotNetOAuth.Test {
}
[TestMethod, ExpectedException(typeof(ArgumentNullException))]
+ public void SerializeNullFields() {
+ var serializer = new ProtocolMessageSerializer<Mocks.TestMessage>();
+ serializer.Serialize(null, new Mocks.TestMessage());
+ }
+
+ [TestMethod, ExpectedException(typeof(ArgumentNullException))]
+ public void SerializeNullMessage() {
+ var serializer = new ProtocolMessageSerializer<Mocks.TestMessage>();
+ serializer.Serialize(new Dictionary<string, string>(), null);
+ }
+
+ [TestMethod, ExpectedException(typeof(ProtocolException))]
+ public void SerializeInvalidMessage() {
+ var serializer = new ProtocolMessageSerializer<Mocks.TestMessage>();
+ Dictionary<string, string> fields = new Dictionary<string, string>(StringComparer.Ordinal);
+ Mocks.TestMessage message = new DotNetOAuth.Test.Mocks.TestMessage();
+ message.EmptyMember = "invalidvalue";
+ serializer.Serialize(message);
+ }
+
+ [TestMethod()]
+ public void SerializeTest() {
+ var serializer = new ProtocolMessageSerializer<Mocks.TestMessage>();
+ var message = new Mocks.TestMessage { Age = 15, Name = "Andrew" };
+ IDictionary<string, string> actual = serializer.Serialize(message);
+ Assert.AreEqual(2, actual.Count);
+
+ // Test case sensitivity of generated dictionary
+ Assert.IsFalse(actual.ContainsKey("Age"));
+ Assert.IsTrue(actual.ContainsKey("age"));
+
+ // Test contents of dictionary
+ Assert.AreEqual("15", actual["age"]);
+ Assert.AreEqual("Andrew", actual["Name"]);
+ Assert.IsFalse(actual.ContainsKey("EmptyMember"));
+ }
+
+ [TestMethod]
+ public void SerializeToExistingDictionary() {
+ var serializer = new ProtocolMessageSerializer<Mocks.TestMessage>();
+ var message = new Mocks.TestMessage { Age = 15, Name = "Andrew" };
+ var fields = new Dictionary<string, string>();
+ fields["someExtraField"] = "someValue";
+ serializer.Serialize(fields, message);
+ Assert.AreEqual(3, fields.Count);
+ Assert.AreEqual("15", fields["age"]);
+ Assert.AreEqual("Andrew", fields["Name"]);
+ Assert.AreEqual("someValue", fields["someExtraField"]);
+ }
+
+ [TestMethod, ExpectedException(typeof(ArgumentNullException))]
public void DeserializeNull() {
var serializer = new ProtocolMessageSerializer<Mocks.TestMessage>();
serializer.Deserialize(null);
}
- /// <summary>
- /// A test for Deserialize
- /// </summary>
[TestMethod()]
public void DeserializeSimple() {
var serializer = new ProtocolMessageSerializer<Mocks.TestMessage>();
@@ -39,44 +87,33 @@ namespace DotNetOAuth.Test {
var serializer = new ProtocolMessageSerializer<Mocks.TestMessage>();
Dictionary<string, string> fields = new Dictionary<string, string>(StringComparer.Ordinal);
fields["age"] = "15";
+ fields["Name"] = "Andrew";
// 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 = serializer.Deserialize(fields);
Assert.AreEqual(15, actual.Age);
- Assert.IsNull(actual.Name);
+ Assert.AreEqual("Andrew", actual.Name);
Assert.IsNull(actual.EmptyMember);
}
- /// <summary>
- /// A test for Deserialize
- /// </summary>
[TestMethod()]
public void DeserializeEmpty() {
var serializer = new ProtocolMessageSerializer<Mocks.TestMessage>();
Dictionary<string, string> fields = new Dictionary<string, string>(StringComparer.Ordinal);
var actual = serializer.Deserialize(fields);
Assert.AreEqual(0, actual.Age);
+ Assert.IsNull(actual.Name);
+ Assert.IsNull(actual.EmptyMember);
}
- /// <summary>
- /// A test for Serialize
- /// </summary>
- [TestMethod()]
- public void SerializeTest() {
+ [TestMethod, ExpectedException(typeof(ProtocolException))]
+ public void DeserializeInvalidMessage() {
var serializer = new ProtocolMessageSerializer<Mocks.TestMessage>();
- var message = new Mocks.TestMessage { Age = 15, Name = "Andrew" };
- IDictionary<string, string> actual = serializer.Serialize(message);
- Assert.AreEqual(2, actual.Count);
-
- // Test case sensitivity of generated dictionary
- Assert.IsFalse(actual.ContainsKey("Age"));
- Assert.IsTrue(actual.ContainsKey("age"));
-
- // Test contents of dictionary
- Assert.AreEqual("15", actual["age"]);
- Assert.AreEqual("Andrew", actual["Name"]);
- Assert.IsFalse(actual.ContainsKey("EmptyMember"));
+ Dictionary<string, string> fields = new Dictionary<string, string>(StringComparer.Ordinal);
+ // Put in a value where the field should be empty.
+ fields["EmptyMember"] = "15";
+ serializer.Deserialize(fields);
}
}
}