diff options
Diffstat (limited to 'src/DotNetOAuth.Test')
-rw-r--r-- | src/DotNetOAuth.Test/DotNetOAuth.Test.csproj | 16 | ||||
-rw-r--r-- | src/DotNetOAuth.Test/MessageSerializerTest.cs | 68 | ||||
-rw-r--r-- | src/DotNetOAuth.Test/Mocks/TestMessage.cs | 13 | ||||
-rw-r--r-- | src/DotNetOAuth.Test/ServiceProviderTest.cs | 56 |
4 files changed, 153 insertions, 0 deletions
diff --git a/src/DotNetOAuth.Test/DotNetOAuth.Test.csproj b/src/DotNetOAuth.Test/DotNetOAuth.Test.csproj index 6fc049f..d136b2c 100644 --- a/src/DotNetOAuth.Test/DotNetOAuth.Test.csproj +++ b/src/DotNetOAuth.Test/DotNetOAuth.Test.csproj @@ -44,9 +44,25 @@ <Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
+ <Reference Include="System.Data" />
+ <Reference Include="System.Data.DataSetExtensions">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Runtime.Serialization">
+ <RequiredTargetFramework>3.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Web" />
+ <Reference Include="System.Xml" />
+ <Reference Include="System.Xml.Linq">
+ <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ </Reference>
</ItemGroup>
<ItemGroup>
+ <Compile Include="MessageSerializerTest.cs" />
+ <Compile Include="Mocks\TestMessage.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="ServiceProviderTest.cs" />
+ <Compile Include="TestBase.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DotNetOAuth\DotNetOAuth.csproj">
diff --git a/src/DotNetOAuth.Test/MessageSerializerTest.cs b/src/DotNetOAuth.Test/MessageSerializerTest.cs new file mode 100644 index 0000000..2db8343 --- /dev/null +++ b/src/DotNetOAuth.Test/MessageSerializerTest.cs @@ -0,0 +1,68 @@ +using System;
+using System.Collections.Generic;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace DotNetOAuth.Test {
+ [TestClass()]
+ public class MessageSerializerTest : TestBase {
+ [TestMethod, ExpectedException(typeof(ArgumentNullException))]
+ public void SerializeNull() {
+ var serializer = new ProtocolMessageSerializer<Mocks.TestMessage>();
+ serializer.Serialize(null);
+ }
+
+ [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>();
+ Dictionary<string, string> fields = new Dictionary<string, string>(StringComparer.Ordinal);
+ // We deliberately do this OUT of alphabetical order (caps would go first),
+ // since DataContractSerializer demands things to be IN alphabetical order.
+ fields["age"] = "15";
+ fields["Name"] = "Andrew";
+ var actual = serializer.Deserialize(fields);
+ Assert.AreEqual(15, actual.Age);
+ Assert.AreEqual("Andrew", actual.Name);
+ Assert.AreEqual(null, 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);
+ }
+
+ /// <summary>
+ /// A test for Serialize
+ /// </summary>
+ [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"));
+ }
+ }
+}
diff --git a/src/DotNetOAuth.Test/Mocks/TestMessage.cs b/src/DotNetOAuth.Test/Mocks/TestMessage.cs new file mode 100644 index 0000000..1a8eba7 --- /dev/null +++ b/src/DotNetOAuth.Test/Mocks/TestMessage.cs @@ -0,0 +1,13 @@ +using System.Runtime.Serialization;
+
+namespace DotNetOAuth.Test.Mocks {
+ [DataContract(Namespace = Protocol.DataContractNamespace)]
+ class TestMessage : IProtocolMessage {
+ [DataMember(Name = "age")]
+ public int Age { get; set; }
+ [DataMember]
+ public string Name { get; set; }
+ [DataMember]
+ public string EmptyMember { get; set; }
+ }
+}
diff --git a/src/DotNetOAuth.Test/ServiceProviderTest.cs b/src/DotNetOAuth.Test/ServiceProviderTest.cs new file mode 100644 index 0000000..56ef619 --- /dev/null +++ b/src/DotNetOAuth.Test/ServiceProviderTest.cs @@ -0,0 +1,56 @@ +using System;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace DotNetOAuth.Test {
+ [TestClass()]
+ public class ServiceProviderTest {
+ /// <summary>
+ /// A test for UserAuthorizationUri
+ /// </summary>
+ [TestMethod()]
+ public void UserAuthorizationUriTest() {
+ ServiceProvider target = new ServiceProvider();
+ Uri expected = new Uri("http://localhost/authorization");
+ Uri actual;
+ target.UserAuthorizationUri = expected;
+ actual = target.UserAuthorizationUri;
+ Assert.AreEqual(expected, actual);
+ }
+
+ /// <summary>
+ /// A test for RequestTokenUri
+ /// </summary>
+ [TestMethod()]
+ public void RequestTokenUriTest() {
+ ServiceProvider target = new ServiceProvider();
+ Uri expected = new Uri("http://localhost/requesttoken");
+ Uri actual;
+ target.RequestTokenUri = expected;
+ actual = target.RequestTokenUri;
+ Assert.AreEqual(expected, actual);
+ }
+
+ /// <summary>
+ /// Verifies that oauth parameters are not allowed in <see cref="ServiceProvider.RequestTokenUri"/>,
+ /// per section OAuth 1.0 section 4.1.
+ /// </summary>
+ [TestMethod, ExpectedException(typeof(ArgumentException))]
+ public void RequestTokenUriWithOAuthParametersTest() {
+ ServiceProvider target = new ServiceProvider();
+ target.RequestTokenUri = new Uri("http://localhost/requesttoken?oauth_token=something");
+ }
+
+ /// <summary>
+ /// A test for AccessTokenUri
+ /// </summary>
+ [TestMethod()]
+ public void AccessTokenUriTest() {
+ ServiceProvider target = new ServiceProvider();
+ Uri expected = new Uri("http://localhost/accesstoken");
+ Uri actual;
+ target.AccessTokenUri = expected;
+ actual = target.AccessTokenUri;
+ Assert.AreEqual(expected, actual);
+ }
+ }
+}
|