summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs')
-rw-r--r--src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs253
1 files changed, 120 insertions, 133 deletions
diff --git a/src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs b/src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs
index bc28f63..d24cf77 100644
--- a/src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs
+++ b/src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs
@@ -1,140 +1,127 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.Web;
-using DotNetOpenAuth.AspNet.Clients;
-using Moq;
-using NUnit.Framework;
-
-namespace DotNetOpenAuth.AspNet.Test
-{
- [TestFixture]
- public class OAuth2ClientTest
- {
- [TestCase]
- public void TestProviderName()
- {
- // Arrange
- var client = new MockOAuth2Client();
-
- // Act
- string providerName = client.ProviderName;
-
- // Assert
- Assert.AreEqual("mockprovider", providerName);
- }
-
- [TestCase]
- public void RequestAuthenticationIssueCorrectRedirect()
- {
- // Arrange
- var client = new MockOAuth2Client();
- var context = new Mock<HttpContextBase>(MockBehavior.Strict);
- context.Setup(c => c.Response.Redirect("http://live.com/?q=http://return.to.me/", true)).Verifiable();
-
- // Act
- client.RequestAuthentication(context.Object, new Uri("http://return.to.me"));
-
- // Assert
- context.Verify();
- }
-
- [TestCase]
- public void VerifyAuthenticationThrowsIfContextIsNull()
- {
- // Arrange
- var client = new MockOAuth2Client();
-
- // Act && Assert
- Assert.Throws<ArgumentNullException>(() => client.VerifyAuthentication(null));
- }
-
- [TestCase]
- public void VerifyAuthenticationFailsIfCodeIsNotPresent()
- {
- // Arrange
- var client = new MockOAuth2Client();
- var context = new Mock<HttpContextBase>(MockBehavior.Strict);
- var queryStrings = new NameValueCollection();
- context.Setup(c => c.Request.QueryString).Returns(queryStrings);
-
- // Act
- AuthenticationResult result = client.VerifyAuthentication(context.Object);
-
- // Assert
- Assert.IsFalse(result.IsSuccessful);
- }
-
- [TestCase]
- public void VerifyAuthenticationFailsIfAccessTokenIsNull()
- {
- // Arrange
- var client = new MockOAuth2Client();
- var context = new Mock<HttpContextBase>(MockBehavior.Strict);
- var queryStrings = new NameValueCollection();
- queryStrings.Add("code", "random");
- context.Setup(c => c.Request.QueryString).Returns(queryStrings);
-
- // Act
- AuthenticationResult result = client.VerifyAuthentication(context.Object);
-
- // Assert
- Assert.IsFalse(result.IsSuccessful);
- }
-
- [TestCase]
- public void VerifyAuthenticationSucceeds()
- {
- // Arrange
- var client = new MockOAuth2Client();
- var context = new Mock<HttpContextBase>(MockBehavior.Strict);
- var queryStrings = new NameValueCollection();
- queryStrings.Add("code", "secret");
- context.Setup(c => c.Request.QueryString).Returns(queryStrings);
-
- // Act
- AuthenticationResult result = client.VerifyAuthentication(context.Object);
-
- // Assert
- Assert.True(result.IsSuccessful);
- Assert.AreEqual("mockprovider", result.Provider);
- Assert.AreEqual("12345", result.ProviderUserId);
- Assert.AreEqual("John Doe", result.UserName);
- Assert.NotNull(result.ExtraData);
- Assert.AreEqual("abcde", result.ExtraData["token"]);
- }
-
- private class MockOAuth2Client : OAuth2Client
- {
- public MockOAuth2Client() : base("mockprovider")
- {
- }
-
- protected override Uri GetServiceLoginUrl(Uri returnUrl)
- {
- string url = "http://live.com/?q=" + returnUrl.ToString();
- return new Uri(url);
- }
-
- protected override string QueryAccessToken(Uri returnUrl, string authorizationCode)
- {
- return (authorizationCode == "secret") ? "abcde" : null;
- }
-
- protected override IDictionary<string, string> GetUserData(string accessToken)
- {
- if (accessToken == "abcde")
- {
- return new Dictionary<string, string>
+namespace DotNetOpenAuth.AspNet.Test {
+ using System;
+ using System.Collections.Generic;
+ using System.Collections.Specialized;
+ using System.Web;
+ using DotNetOpenAuth.AspNet.Clients;
+ using Moq;
+ using NUnit.Framework;
+
+ [TestFixture]
+ public class OAuth2ClientTest {
+ [TestCase]
+ public void TestProviderName() {
+ // Arrange
+ var client = new MockOAuth2Client();
+
+ // Act
+ string providerName = client.ProviderName;
+
+ // Assert
+ Assert.AreEqual("mockprovider", providerName);
+ }
+
+ [TestCase]
+ public void RequestAuthenticationIssueCorrectRedirect() {
+ // Arrange
+ var client = new MockOAuth2Client();
+ var context = new Mock<HttpContextBase>(MockBehavior.Strict);
+ context.Setup(c => c.Response.Redirect("http://live.com/?q=http://return.to.me/", true)).Verifiable();
+
+ // Act
+ client.RequestAuthentication(context.Object, new Uri("http://return.to.me"));
+
+ // Assert
+ context.Verify();
+ }
+
+ [TestCase]
+ public void VerifyAuthenticationThrowsIfContextIsNull() {
+ // Arrange
+ var client = new MockOAuth2Client();
+
+ // Act && Assert
+ Assert.Throws<ArgumentNullException>(() => client.VerifyAuthentication(null));
+ }
+
+ [TestCase]
+ public void VerifyAuthenticationFailsIfCodeIsNotPresent() {
+ // Arrange
+ var client = new MockOAuth2Client();
+ var context = new Mock<HttpContextBase>(MockBehavior.Strict);
+ var queryStrings = new NameValueCollection();
+ context.Setup(c => c.Request.QueryString).Returns(queryStrings);
+
+ // Act
+ AuthenticationResult result = client.VerifyAuthentication(context.Object);
+
+ // Assert
+ Assert.IsFalse(result.IsSuccessful);
+ }
+
+ [TestCase]
+ public void VerifyAuthenticationFailsIfAccessTokenIsNull() {
+ // Arrange
+ var client = new MockOAuth2Client();
+ var context = new Mock<HttpContextBase>(MockBehavior.Strict);
+ var queryStrings = new NameValueCollection();
+ queryStrings.Add("code", "random");
+ context.Setup(c => c.Request.QueryString).Returns(queryStrings);
+
+ // Act
+ AuthenticationResult result = client.VerifyAuthentication(context.Object);
+
+ // Assert
+ Assert.IsFalse(result.IsSuccessful);
+ }
+
+ [TestCase]
+ public void VerifyAuthenticationSucceeds() {
+ // Arrange
+ var client = new MockOAuth2Client();
+ var context = new Mock<HttpContextBase>(MockBehavior.Strict);
+ var queryStrings = new NameValueCollection();
+ queryStrings.Add("code", "secret");
+ context.Setup(c => c.Request.QueryString).Returns(queryStrings);
+
+ // Act
+ AuthenticationResult result = client.VerifyAuthentication(context.Object);
+
+ // Assert
+ Assert.True(result.IsSuccessful);
+ Assert.AreEqual("mockprovider", result.Provider);
+ Assert.AreEqual("12345", result.ProviderUserId);
+ Assert.AreEqual("John Doe", result.UserName);
+ Assert.NotNull(result.ExtraData);
+ Assert.AreEqual("abcde", result.ExtraData["token"]);
+ }
+
+ private class MockOAuth2Client : OAuth2Client {
+ public MockOAuth2Client()
+ : base("mockprovider") {
+ }
+
+ protected override Uri GetServiceLoginUrl(Uri returnUrl) {
+ string url = "http://live.com/?q=" + returnUrl.ToString();
+ return new Uri(url);
+ }
+
+ protected override string QueryAccessToken(Uri returnUrl, string authorizationCode) {
+ return (authorizationCode == "secret") ? "abcde" : null;
+ }
+
+ protected override IDictionary<string, string> GetUserData(string accessToken) {
+ if (accessToken == "abcde") {
+ return new Dictionary<string, string>
{
{"id", "12345"},
{"token", accessToken},
{"name", "John Doe"}
};
- }
+ }
- return null;
- }
- }
- }
+ return null;
+ }
+ }
+ }
}