public void Consumer_AuthorizeUser() { //arrange var provider = A.Fake<IOAuthProvider>(); IConsumer consumer = new ConsumerFactory(options, provider) .CreateConsumer(); var request_token = "requestToken"; var request_token_secret = "requestTokenSecret"; var authorize_url = new Uri("http://expectedUrl"); var verifier = "verifier"; var getRequestTokenRequestResult = string.Format("oauth_token={0}&oauth_token_secret={1}&oauth_expires_in=124&xoauth_request_auth_url={2}", request_token, request_token_secret, authorize_url); var access_token = "accessToken"; var access_token_secret = "accessTokenSecret"; var tokenInfo = new TokenInfo { AccessToken = access_token, AccessTokenSecret = access_token_secret, }; var getAccessTokenRequestResult = string.Format("oauth_token={0}&oauth_token_secret={1}&oauth_expires_in=124&oauth_session_handle=12334&oauth_authorization_expires_in=1234", access_token, access_token_secret); A.CallTo(() => provider.GetRequestTokenRequest( A<string>._, A<string>._, A<string>._, A<string>._, A<SignatureMethod>._)) .Returns(getRequestTokenRequestResult); A.CallTo(() => provider.GetGetAccessTokenRequest( A<string>._, A<string>._, A<string>._, A<string>._, A<SignatureMethod>._, A<string>._, A<string>._)) .Returns(getAccessTokenRequestResult); //act consumer.RequestLogin(); var actualTokenInfo = consumer.AuthorizeUser(verifier); //assert A.CallTo(() => provider.GetRequestTokenRequest( options.RequestTokenUrl, options.ConsumerKey, options.ConsumerSecret, options.RequestTokenResponseCallbackUrl, options.SignatureMethod)); A.CallTo(() => provider.GetGetAccessTokenRequest( options.AccessTokenUrl, options.ConsumerKey, options.ConsumerSecret, request_token_secret, options.SignatureMethod, request_token, verifier)); Assert.AreEqual(tokenInfo.AccessToken, actualTokenInfo.AccessToken); Assert.AreEqual(tokenInfo.AccessTokenSecret, actualTokenInfo.AccessTokenSecret); }
public void Conumser_CanGetUserFantasySports_Information() { //arrange options.RequestTokenResponseCallbackUrl = TU.GenerateLocalHostBaseAddress(); IConsumer consumer = new ConsumerFactory(options) .CreateConsumer(); string verifier = null; var uri = consumer.RequestLogin(); Process.Start(uri.ToString()); var listener = new HttpListener(); listener.Prefixes.Add(options.RequestTokenResponseCallbackUrl); listener.Start(); var manualResetEvent = new ManualResetEvent(false); listener.BeginGetContext( ((r) => { var lisnr = (HttpListener)r.AsyncState; var context = lisnr.EndGetContext(r); var rq = context.Request.GetRequestParameters(); verifier = rq.Where(p => p.Name == "oauth_verifier") .Select(p => p.Value) .First(); manualResetEvent.Set(); }), listener); manualResetEvent.WaitOne(); ((IDisposable)listener).Dispose(); var accessToken = consumer.AuthorizeUser(verifier); //act var request = consumer.CreateHttpRequest("http://fantasysports.yahooapis.com/fantasy/v2/users;use_login=1/games", HttpMethod.GET); using (var response = request.GetResponse() as HttpWebResponse) { Assert.IsNotNull(response); Assert.IsTrue(response.StatusCode == HttpStatusCode.OK); } }
public void Consumer_CreateRequest() { //arrange var provider = A.Fake<IOAuthProvider>(); IConsumer consumer = new ConsumerFactory(options, provider) .CreateConsumer(); var request_token = "requestToken"; var request_token_secret = "requestTokenSecret"; var authorize_url = new Uri("http://expectedUrl"); var verifier = "verifier"; var getRequestTokenRequestResult = string.Format("oauth_token={0}&oauth_token_secret={1}&oauth_expires_in=124&xoauth_request_auth_url={2}", request_token, request_token_secret, authorize_url); var access_token = "accessToken"; var access_token_secret = "accessTokenSecret"; var getAccessTokenRequestResult = string.Format("oauth_token={0}&oauth_token_secret={1}&oauth_expires_in=124&oauth_session_handle=12334&oauth_authorization_expires_in=1234", access_token, access_token_secret); A.CallTo(() => provider.GetRequestTokenRequest( A<string>._, A<string>._, A<string>._, A<string>._, A<SignatureMethod>._)) .Returns(getRequestTokenRequestResult); A.CallTo(() => provider.GetGetAccessTokenRequest( A<string>._, A<string>._, A<string>._, A<string>._, A<SignatureMethod>._, A<string>._, A<string>._)) .Returns(getAccessTokenRequestResult); var requestParameters = new IRequestParameter[] { new RequestParameter("test1", "value1"), new RequestParameter("test2", "value2") }; //act consumer.RequestLogin(); consumer.AuthorizeUser(verifier); var request = consumer.CreateHttpRequest("http://test123", HttpMethod.GET, requestParameters); //assert A.CallTo(() => provider.GetRequestTokenRequest( options.RequestTokenUrl, options.ConsumerKey, options.ConsumerSecret, options.RequestTokenResponseCallbackUrl, options.SignatureMethod)); A.CallTo(() => provider.GetGetAccessTokenRequest( options.AccessTokenUrl, options.ConsumerKey, options.ConsumerSecret, request_token_secret, options.SignatureMethod, request_token, verifier)); var requestString = request.RequestUri.ToString(); var expectedSignature = OAuthMessageBuilder.GetOAuthSignature_PlainText(options.ConsumerSecret, null); Assert.IsTrue(requestString.Contains(options.ConsumerKey), "ConsumerKey"); Assert.IsTrue(requestString.Contains("plaintext"), "SignatureMethod"); Assert.IsTrue(requestString.Contains("test1=value1"), "test1"); Assert.IsTrue(requestString.Contains("test2=value2"), "test2"); Assert.IsTrue(requestString.Contains(expectedSignature), "signature"); }
public void Conumser_CanAuthorizeUser() { //arrange options.RequestTokenResponseCallbackUrl = TU.GenerateLocalHostBaseAddress(); IConsumer consumer = new ConsumerFactory(options) .CreateConsumer(); string verifier = null; var uri = consumer.RequestLogin(); Process.Start(uri.ToString()); var listener = new HttpListener(); listener.Prefixes.Add(options.RequestTokenResponseCallbackUrl); listener.Start(); var manualResetEvent = new ManualResetEvent(false); listener.BeginGetContext( ((r) => { var lisnr = (HttpListener)r.AsyncState; var context = lisnr.EndGetContext(r); var rq = context.Request.GetRequestParameters(); verifier = rq.Where(p => p.Name == "oauth_verifier") .Select(p => p.Value) .First(); manualResetEvent.Set(); }), listener); manualResetEvent.WaitOne(); ((IDisposable)listener).Dispose(); //act //assert Assert.IsNotNull(consumer.AuthorizeUser(verifier)); //Access Token }