summaryrefslogtreecommitdiffstats
path: root/src/DotNetOpenAuth.AspNet.Test
diff options
context:
space:
mode:
Diffstat (limited to 'src/DotNetOpenAuth.AspNet.Test')
-rw-r--r--src/DotNetOpenAuth.AspNet.Test/OAuth2ClientTest.cs253
-rw-r--r--src/DotNetOpenAuth.AspNet.Test/OAuthAuthenticationTickerHelperTest.cs293
-rw-r--r--src/DotNetOpenAuth.AspNet.Test/OAuthClientTest.cs271
-rw-r--r--src/DotNetOpenAuth.AspNet.Test/UriHelperTest.cs44
4 files changed, 411 insertions, 450 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;
+ }
+ }
+ }
}
diff --git a/src/DotNetOpenAuth.AspNet.Test/OAuthAuthenticationTickerHelperTest.cs b/src/DotNetOpenAuth.AspNet.Test/OAuthAuthenticationTickerHelperTest.cs
index f3fea5c..78b8ca6 100644
--- a/src/DotNetOpenAuth.AspNet.Test/OAuthAuthenticationTickerHelperTest.cs
+++ b/src/DotNetOpenAuth.AspNet.Test/OAuthAuthenticationTickerHelperTest.cs
@@ -1,152 +1,143 @@
-using System;
-using System.Web;
-using System.Web.Security;
-using DotNetOpenAuth.AspNet;
-using Moq;
-using NUnit.Framework;
-
-namespace DotNetOpenAuth.Test.Web
-{
- [TestFixture]
- public class OAuthAuthenticationTickerHelperTest
- {
- [TestCase]
- public void SetAuthenticationTicketSetCookieOnHttpResponseWithPersistentSet()
- {
- SetAuthenticationTicketSetCookieOnHttpResponse(isPersistent: true);
- }
-
- [TestCase]
- public void SetAuthenticationTicketSetCookieOnHttpResponseWithPersistentNotSet()
- {
- SetAuthenticationTicketSetCookieOnHttpResponse(isPersistent: false);
- }
-
- [TestCase]
- public void IsOAuthAuthenticationTicketReturnsTrueIfCookieIsPresent()
- {
- // Arrange
- var ticket = new FormsAuthenticationTicket(
- 2,
- "username",
- DateTime.Now,
- DateTime.Now.Add(FormsAuthentication.Timeout),
- false,
- "OAuth",
- FormsAuthentication.FormsCookiePath);
-
- var cookie = new HttpCookie(name: FormsAuthentication.FormsCookieName,
- value: FormsAuthentication.Encrypt(ticket));
- var cookies = new HttpCookieCollection {cookie};
-
- var context = new Mock<HttpContextBase>();
- context.Setup(c => c.Request.Cookies).Returns(cookies);
-
- // Act
- bool result = OpenAuthAuthenticationTicketHelper.IsValidAuthenticationTicket(context.Object);
-
- // Assert
- Assert.IsTrue(result);
- }
-
- [TestCase]
- public void IsOAuthAuthenticationTicketReturnsFalseIfCookieIsNotPresent()
- {
- // Arrange
- var context = new Mock<HttpContextBase>();
- context.Setup(c => c.Request.Cookies).Returns(new HttpCookieCollection());
-
- // Act
- bool result = OpenAuthAuthenticationTicketHelper.IsValidAuthenticationTicket(context.Object);
-
- // Assert
- Assert.IsFalse(result);
- }
-
- [TestCase]
- public void IsOAuthAuthenticationTicketReturnsFalseIfCookieIsPresentButDoesNotHaveOAuthData()
- {
- // Arrange
- var ticket = new FormsAuthenticationTicket(
- 2,
- "username",
- DateTime.Now,
- DateTime.Now.Add(FormsAuthentication.Timeout),
- false,
- null,
- FormsAuthentication.FormsCookiePath);
-
- var cookie = new HttpCookie(name: FormsAuthentication.FormsCookieName,
- value: FormsAuthentication.Encrypt(ticket));
- var cookies = new HttpCookieCollection { cookie };
-
- var context = new Mock<HttpContextBase>();
- context.Setup(c => c.Request.Cookies).Returns(cookies);
-
- // Act
- bool result = OpenAuthAuthenticationTicketHelper.IsValidAuthenticationTicket(context.Object);
-
- // Assert
- Assert.IsFalse(result);
- }
-
- [TestCase]
- public void IsOAuthAuthenticationTicketReturnsFalseIfCookieIsPresentButDoesNotHaveCorrectName()
- {
- // Arrange
- var response = new Mock<HttpResponseBase>();
-
- var ticket = new FormsAuthenticationTicket(
- 2,
- "username",
- DateTime.Now,
- DateTime.Now.Add(FormsAuthentication.Timeout),
- false,
- "OAuth",
- FormsAuthentication.FormsCookiePath);
-
- var cookie = new HttpCookie(name: "random cookie name",
- value: FormsAuthentication.Encrypt(ticket));
- var cookies = new HttpCookieCollection { cookie };
-
- var context = new Mock<HttpContextBase>();
- context.Setup(c => c.Request.Cookies).Returns(cookies);
-
- // Act
- bool result = OpenAuthAuthenticationTicketHelper.IsValidAuthenticationTicket(context.Object);
-
- // Assert
- Assert.IsFalse(result);
- }
-
- private void SetAuthenticationTicketSetCookieOnHttpResponse(bool isPersistent)
- {
- // Arrange
- var cookies = new HttpCookieCollection();
-
- var context = new Mock<HttpContextBase>();
- context.Setup(c => c.Request.IsSecureConnection).Returns(true);
- context.Setup(c => c.Response.Cookies).Returns(cookies);
-
- // Act
- OpenAuthAuthenticationTicketHelper.SetAuthenticationTicket(context.Object, "user", isPersistent);
-
- // Assert
- Assert.AreEqual(1, cookies.Count);
- HttpCookie addedCookie = cookies[0];
-
- Assert.AreEqual(FormsAuthentication.FormsCookieName, addedCookie.Name);
- Assert.IsTrue(addedCookie.HttpOnly);
- Assert.AreEqual("/", addedCookie.Path);
- Assert.IsFalse(addedCookie.Secure);
- Assert.IsNotNullOrEmpty(addedCookie.Value);
-
- FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(addedCookie.Value);
- Assert.NotNull(ticket);
- Assert.AreEqual(2, ticket.Version);
- Assert.AreEqual("user", ticket.Name);
- Assert.AreEqual("OAuth", ticket.UserData);
- Assert.AreEqual(isPersistent, ticket.IsPersistent);
- }
- }
+namespace DotNetOpenAuth.Test.Web {
+ using System;
+ using System.Web;
+ using System.Web.Security;
+ using DotNetOpenAuth.AspNet;
+ using Moq;
+ using NUnit.Framework;
+
+ [TestFixture]
+ public class OAuthAuthenticationTickerHelperTest {
+ [TestCase]
+ public void SetAuthenticationTicketSetCookieOnHttpResponseWithPersistentSet() {
+ SetAuthenticationTicketSetCookieOnHttpResponse(isPersistent: true);
+ }
+
+ [TestCase]
+ public void SetAuthenticationTicketSetCookieOnHttpResponseWithPersistentNotSet() {
+ SetAuthenticationTicketSetCookieOnHttpResponse(isPersistent: false);
+ }
+
+ [TestCase]
+ public void IsOAuthAuthenticationTicketReturnsTrueIfCookieIsPresent() {
+ // Arrange
+ var ticket = new FormsAuthenticationTicket(
+ 2,
+ "username",
+ DateTime.Now,
+ DateTime.Now.Add(FormsAuthentication.Timeout),
+ false,
+ "OAuth",
+ FormsAuthentication.FormsCookiePath);
+
+ var cookie = new HttpCookie(name: FormsAuthentication.FormsCookieName,
+ value: FormsAuthentication.Encrypt(ticket));
+ var cookies = new HttpCookieCollection { cookie };
+
+ var context = new Mock<HttpContextBase>();
+ context.Setup(c => c.Request.Cookies).Returns(cookies);
+
+ // Act
+ bool result = OpenAuthAuthenticationTicketHelper.IsValidAuthenticationTicket(context.Object);
+
+ // Assert
+ Assert.IsTrue(result);
+ }
+
+ [TestCase]
+ public void IsOAuthAuthenticationTicketReturnsFalseIfCookieIsNotPresent() {
+ // Arrange
+ var context = new Mock<HttpContextBase>();
+ context.Setup(c => c.Request.Cookies).Returns(new HttpCookieCollection());
+
+ // Act
+ bool result = OpenAuthAuthenticationTicketHelper.IsValidAuthenticationTicket(context.Object);
+
+ // Assert
+ Assert.IsFalse(result);
+ }
+
+ [TestCase]
+ public void IsOAuthAuthenticationTicketReturnsFalseIfCookieIsPresentButDoesNotHaveOAuthData() {
+ // Arrange
+ var ticket = new FormsAuthenticationTicket(
+ 2,
+ "username",
+ DateTime.Now,
+ DateTime.Now.Add(FormsAuthentication.Timeout),
+ false,
+ null,
+ FormsAuthentication.FormsCookiePath);
+
+ var cookie = new HttpCookie(name: FormsAuthentication.FormsCookieName,
+ value: FormsAuthentication.Encrypt(ticket));
+ var cookies = new HttpCookieCollection { cookie };
+
+ var context = new Mock<HttpContextBase>();
+ context.Setup(c => c.Request.Cookies).Returns(cookies);
+
+ // Act
+ bool result = OpenAuthAuthenticationTicketHelper.IsValidAuthenticationTicket(context.Object);
+
+ // Assert
+ Assert.IsFalse(result);
+ }
+
+ [TestCase]
+ public void IsOAuthAuthenticationTicketReturnsFalseIfCookieIsPresentButDoesNotHaveCorrectName() {
+ // Arrange
+ var response = new Mock<HttpResponseBase>();
+
+ var ticket = new FormsAuthenticationTicket(
+ 2,
+ "username",
+ DateTime.Now,
+ DateTime.Now.Add(FormsAuthentication.Timeout),
+ false,
+ "OAuth",
+ FormsAuthentication.FormsCookiePath);
+
+ var cookie = new HttpCookie(name: "random cookie name",
+ value: FormsAuthentication.Encrypt(ticket));
+ var cookies = new HttpCookieCollection { cookie };
+
+ var context = new Mock<HttpContextBase>();
+ context.Setup(c => c.Request.Cookies).Returns(cookies);
+
+ // Act
+ bool result = OpenAuthAuthenticationTicketHelper.IsValidAuthenticationTicket(context.Object);
+
+ // Assert
+ Assert.IsFalse(result);
+ }
+
+ private void SetAuthenticationTicketSetCookieOnHttpResponse(bool isPersistent) {
+ // Arrange
+ var cookies = new HttpCookieCollection();
+
+ var context = new Mock<HttpContextBase>();
+ context.Setup(c => c.Request.IsSecureConnection).Returns(true);
+ context.Setup(c => c.Response.Cookies).Returns(cookies);
+
+ // Act
+ OpenAuthAuthenticationTicketHelper.SetAuthenticationTicket(context.Object, "user", isPersistent);
+
+ // Assert
+ Assert.AreEqual(1, cookies.Count);
+ HttpCookie addedCookie = cookies[0];
+
+ Assert.AreEqual(FormsAuthentication.FormsCookieName, addedCookie.Name);
+ Assert.IsTrue(addedCookie.HttpOnly);
+ Assert.AreEqual("/", addedCookie.Path);
+ Assert.IsFalse(addedCookie.Secure);
+ Assert.IsNotNullOrEmpty(addedCookie.Value);
+
+ FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(addedCookie.Value);
+ Assert.NotNull(ticket);
+ Assert.AreEqual(2, ticket.Version);
+ Assert.AreEqual("user", ticket.Name);
+ Assert.AreEqual("OAuth", ticket.UserData);
+ Assert.AreEqual(isPersistent, ticket.IsPersistent);
+ }
+ }
}
diff --git a/src/DotNetOpenAuth.AspNet.Test/OAuthClientTest.cs b/src/DotNetOpenAuth.AspNet.Test/OAuthClientTest.cs
index 6c14927..bec7f8a 100644
--- a/src/DotNetOpenAuth.AspNet.Test/OAuthClientTest.cs
+++ b/src/DotNetOpenAuth.AspNet.Test/OAuthClientTest.cs
@@ -1,143 +1,130 @@
-using System;
-using System.Web;
-using DotNetOpenAuth.Messaging;
-using DotNetOpenAuth.OAuth.Messages;
-using DotNetOpenAuth.AspNet.Clients;
-using Moq;
-using NUnit.Framework;
-using DotNetOpenAuth.AspNet;
-
-namespace DotNetOpenAuth.AspNet.Test
-{
- [TestFixture]
- public class OAuthClientTest
- {
- [TestCase]
- public void TestProviderNamePropertyIsCorrect()
- {
- // Arrange
- var client = new MockOAuthClient();
-
- // Act
- var provider = client.ProviderName;
-
- // Assert
- Assert.AreEqual("mockoauth", provider);
- }
-
- [TestCase]
- public void RequestAuthenticationInvokeMethodOnWebWorker()
- {
- // Arrange
- var webWorker = new Mock<IOAuthWebWorker>(MockBehavior.Strict);
- webWorker.Setup(
- w => w.RequestAuthentication(
- It.Is<Uri>(u => u.ToString().Equals("http://live.com/my/path.cshtml?q=one"))))
- .Verifiable();
-
- var client = new MockOAuthClient(webWorker.Object);
- var returnUri = new Uri("http://live.com/my/path.cshtml?q=one");
- var context = new Mock<HttpContextBase>();
-
- // Act
- client.RequestAuthentication(context.Object, returnUri);
-
- // Assert
- webWorker.Verify();
- }
-
- [TestCase]
- public void VerifyAuthenticationFailsIfResponseTokenIsNull()
- {
- // Arrange
- var webWorker = new Mock<IOAuthWebWorker>(MockBehavior.Strict);
- webWorker.Setup(w => w.ProcessUserAuthorization()).Returns((AuthorizedTokenResponse)null);
-
- var client = new MockOAuthClient(webWorker.Object);
- var context = new Mock<HttpContextBase>();
-
- // Act
- client.VerifyAuthentication(context.Object);
-
- // Assert
- webWorker.Verify();
- }
-
- [TestCase]
- public void VerifyAuthenticationFailsIfAccessTokenIsInvalid()
- {
- // Arrange
- var endpoint = new MessageReceivingEndpoint("http://live.com/path/?a=b", HttpDeliveryMethods.GetRequest);
- var request = new AuthorizedTokenRequest(endpoint, new Version("1.0"));
- var response = new AuthorizedTokenResponse(request)
- {
- AccessToken = "invalid token"
- };
-
- var webWorker = new Mock<IOAuthWebWorker>(MockBehavior.Strict);
- webWorker.Setup(w => w.ProcessUserAuthorization()).Returns(response).Verifiable();
-
- var client = new MockOAuthClient(webWorker.Object);
- var context = new Mock<HttpContextBase>();
-
- // Act
- AuthenticationResult result = client.VerifyAuthentication(context.Object);
-
- // Assert
- webWorker.Verify();
-
- Assert.False(result.IsSuccessful);
- }
-
- [TestCase]
- public void VerifyAuthenticationSucceeds()
- {
- // Arrange
- var endpoint = new MessageReceivingEndpoint("http://live.com/path/?a=b", HttpDeliveryMethods.GetRequest);
- var request = new AuthorizedTokenRequest(endpoint, new Version("1.0"));
- var response = new AuthorizedTokenResponse(request)
- {
- AccessToken = "ok"
- };
-
- var webWorker = new Mock<IOAuthWebWorker>(MockBehavior.Strict);
- webWorker.Setup(w => w.ProcessUserAuthorization()).Returns(response).Verifiable();
-
- var client = new MockOAuthClient(webWorker.Object);
- var context = new Mock<HttpContextBase>();
-
- // Act
- AuthenticationResult result = client.VerifyAuthentication(context.Object);
-
- // Assert
- webWorker.Verify();
-
- Assert.True(result.IsSuccessful);
- Assert.AreEqual("mockoauth", result.Provider);
- Assert.AreEqual("12345", result.ProviderUserId);
- Assert.AreEqual("super", result.UserName);
- }
-
- private class MockOAuthClient : OAuthClient
- {
- public MockOAuthClient()
- : this(new Mock<IOAuthWebWorker>().Object)
- {
- }
-
- public MockOAuthClient(IOAuthWebWorker worker) : base("mockoauth", worker)
- {
- }
-
- protected override AuthenticationResult VerifyAuthenticationCore(AuthorizedTokenResponse response)
- {
- if (response.AccessToken == "ok")
- {
- return new AuthenticationResult(true, "mockoauth", "12345", "super", response.ExtraData);
- }
-
- return AuthenticationResult.Failed;
- }
- }
- }
+namespace DotNetOpenAuth.AspNet.Test {
+ using System;
+ using System.Web;
+ using DotNetOpenAuth.Messaging;
+ using DotNetOpenAuth.OAuth.Messages;
+ using DotNetOpenAuth.AspNet.Clients;
+ using Moq;
+ using NUnit.Framework;
+ using DotNetOpenAuth.AspNet;
+
+ [TestFixture]
+ public class OAuthClientTest {
+ [TestCase]
+ public void TestProviderNamePropertyIsCorrect() {
+ // Arrange
+ var client = new MockOAuthClient();
+
+ // Act
+ var provider = client.ProviderName;
+
+ // Assert
+ Assert.AreEqual("mockoauth", provider);
+ }
+
+ [TestCase]
+ public void RequestAuthenticationInvokeMethodOnWebWorker() {
+ // Arrange
+ var webWorker = new Mock<IOAuthWebWorker>(MockBehavior.Strict);
+ webWorker.Setup(
+ w => w.RequestAuthentication(
+ It.Is<Uri>(u => u.ToString().Equals("http://live.com/my/path.cshtml?q=one"))))
+ .Verifiable();
+
+ var client = new MockOAuthClient(webWorker.Object);
+ var returnUri = new Uri("http://live.com/my/path.cshtml?q=one");
+ var context = new Mock<HttpContextBase>();
+
+ // Act
+ client.RequestAuthentication(context.Object, returnUri);
+
+ // Assert
+ webWorker.Verify();
+ }
+
+ [TestCase]
+ public void VerifyAuthenticationFailsIfResponseTokenIsNull() {
+ // Arrange
+ var webWorker = new Mock<IOAuthWebWorker>(MockBehavior.Strict);
+ webWorker.Setup(w => w.ProcessUserAuthorization()).Returns((AuthorizedTokenResponse)null);
+
+ var client = new MockOAuthClient(webWorker.Object);
+ var context = new Mock<HttpContextBase>();
+
+ // Act
+ client.VerifyAuthentication(context.Object);
+
+ // Assert
+ webWorker.Verify();
+ }
+
+ [TestCase]
+ public void VerifyAuthenticationFailsIfAccessTokenIsInvalid() {
+ // Arrange
+ var endpoint = new MessageReceivingEndpoint("http://live.com/path/?a=b", HttpDeliveryMethods.GetRequest);
+ var request = new AuthorizedTokenRequest(endpoint, new Version("1.0"));
+ var response = new AuthorizedTokenResponse(request) {
+ AccessToken = "invalid token"
+ };
+
+ var webWorker = new Mock<IOAuthWebWorker>(MockBehavior.Strict);
+ webWorker.Setup(w => w.ProcessUserAuthorization()).Returns(response).Verifiable();
+
+ var client = new MockOAuthClient(webWorker.Object);
+ var context = new Mock<HttpContextBase>();
+
+ // Act
+ AuthenticationResult result = client.VerifyAuthentication(context.Object);
+
+ // Assert
+ webWorker.Verify();
+
+ Assert.False(result.IsSuccessful);
+ }
+
+ [TestCase]
+ public void VerifyAuthenticationSucceeds() {
+ // Arrange
+ var endpoint = new MessageReceivingEndpoint("http://live.com/path/?a=b", HttpDeliveryMethods.GetRequest);
+ var request = new AuthorizedTokenRequest(endpoint, new Version("1.0"));
+ var response = new AuthorizedTokenResponse(request) {
+ AccessToken = "ok"
+ };
+
+ var webWorker = new Mock<IOAuthWebWorker>(MockBehavior.Strict);
+ webWorker.Setup(w => w.ProcessUserAuthorization()).Returns(response).Verifiable();
+
+ var client = new MockOAuthClient(webWorker.Object);
+ var context = new Mock<HttpContextBase>();
+
+ // Act
+ AuthenticationResult result = client.VerifyAuthentication(context.Object);
+
+ // Assert
+ webWorker.Verify();
+
+ Assert.True(result.IsSuccessful);
+ Assert.AreEqual("mockoauth", result.Provider);
+ Assert.AreEqual("12345", result.ProviderUserId);
+ Assert.AreEqual("super", result.UserName);
+ }
+
+ private class MockOAuthClient : OAuthClient {
+ public MockOAuthClient()
+ : this(new Mock<IOAuthWebWorker>().Object) {
+ }
+
+ public MockOAuthClient(IOAuthWebWorker worker)
+ : base("mockoauth", worker) {
+ }
+
+ protected override AuthenticationResult VerifyAuthenticationCore(AuthorizedTokenResponse response) {
+ if (response.AccessToken == "ok") {
+ return new AuthenticationResult(true, "mockoauth", "12345", "super", response.ExtraData);
+ }
+
+ return AuthenticationResult.Failed;
+ }
+ }
+ }
}
diff --git a/src/DotNetOpenAuth.AspNet.Test/UriHelperTest.cs b/src/DotNetOpenAuth.AspNet.Test/UriHelperTest.cs
index 53a2b52..ea78a76 100644
--- a/src/DotNetOpenAuth.AspNet.Test/UriHelperTest.cs
+++ b/src/DotNetOpenAuth.AspNet.Test/UriHelperTest.cs
@@ -1,17 +1,14 @@
-using System;
-using DotNetOpenAuth.AspNet.Clients;
-using NUnit.Framework;
+namespace DotNetOpenAuth.AspNet.Test {
+ using System;
+ using DotNetOpenAuth.AspNet.Clients;
+ using NUnit.Framework;
-namespace DotNetOpenAuth.AspNet.Test
-{
- [TestFixture]
- public class UriHelperTest
- {
- [TestCase]
- public void TestAttachQueryStringParameterMethod()
- {
- // Arrange
- string[] input = new string[]
+ [TestFixture]
+ public class UriHelperTest {
+ [TestCase]
+ public void TestAttachQueryStringParameterMethod() {
+ // Arrange
+ string[] input = new string[]
{
"http://x.com",
"https://xxx.com/one?s=123",
@@ -19,7 +16,7 @@ namespace DotNetOpenAuth.AspNet.Test
"https://zzz.com/default.aspx?name=sd"
};
- string[] expectedOutput = new string[]
+ string[] expectedOutput = new string[]
{
"http://x.com/?s=awesome",
"https://xxx.com/one?s=awesome",
@@ -27,15 +24,14 @@ namespace DotNetOpenAuth.AspNet.Test
"https://zzz.com/default.aspx?name=sd&s=awesome"
};
- for (int i = 0; i < input.Length; i++)
- {
- // Act
- var inputUrl = new Uri(input[i]);
- var outputUri = UriHelper.AttachQueryStringParameter(inputUrl, "s", "awesome");
+ for (int i = 0; i < input.Length; i++) {
+ // Act
+ var inputUrl = new Uri(input[i]);
+ var outputUri = UriHelper.AttachQueryStringParameter(inputUrl, "s", "awesome");
- // Assert
- Assert.AreEqual(expectedOutput[i], outputUri.ToString());
- }
- }
- }
+ // Assert
+ Assert.AreEqual(expectedOutput[i], outputUri.ToString());
+ }
+ }
+ }
}