// // GET: /OAuth/ public ActionResult Token() { try { var oauthRequest = new TokenRequest(new HttpRequestBaseRequest(Request), MvcApplication.ServiceLocator); var token = oauthRequest.Authorize(); if (token.RedirectsUri.HasValue()) { var redirectUri = OAuthResponse .TokenResponse(token.AccessToken, token.ExpiresIn, token.RefreshToken) .SetLocation(token.RedirectsUri) .BuildQueryMessage().LocationUri; return Redirect(redirectUri); } var response = OAuthResponse .TokenResponse(token.AccessToken, token.ExpiresIn, token.RefreshToken) .BuildJsonMessage(); return this.OAuth(response); } catch (OAuthException ex) { var response = new ErrorResponseBuilder(ex).BuildJsonMessage(); return this.OAuth(response); } }
public void WhenRequestIsValid_ThenAllRequiredPropertiesAreSet() { var mocker = new AutoMoqer(); var properties = new Dictionary<string, string> { {OAuthTokens.ClientId, "clientid"}, {OAuthTokens.ClientSecret, "clientsecret"}, {OAuthTokens.Username, "username"}, {OAuthTokens.Password, "password"}, {OAuthTokens.GrantType, GrantType.Password}, }; mocker.GetMock<IRequest>().Setup(x => x.Properties).Returns(properties); mocker.GetMock<IRequest>().Setup(x => x.ContentType).Returns(ContentType.FormEncoded); mocker.GetMock<IRequest>().Setup(X => X.Headers).Returns(new Dictionary<string, string>()); var request = new TokenRequest(mocker.GetMock<IRequest>().Object, mocker.GetMock<IOAuthServiceLocator>().Object); Assert.AreEqual("clientid", request.ClientId); Assert.AreEqual("clientsecret", request.ClientSecret); Assert.AreEqual("username", request.Username); Assert.AreEqual("password", request.Password); Assert.AreEqual(GrantType.Password, request.GrantType); Assert.AreEqual(ContentType.FormEncoded, request.ContentType); }