예제 #1
0
            public void SetFixture(MockRepository mocks)
            {
                var signer = new OAuthWebRequestSigner(new HmacSha1SignatureGenerator());


                webRequest = mocks.DynamicMock <IOAuthWebRequest>();
                var mockNonceGenerator     = mocks.DynamicMock <INonceGenerator>();
                var mockTimestampGenerator = mocks.DynamicMock <ITimestampGenerator>();
                var consumerToken          = new OAuthToken {
                    Token = consumerKey, TokenSecret = consumerSecret
                };

                mockNonceGenerator.Stub(nonceGen => nonceGen.Generate()).Return(nonce);
                mockTimestampGenerator.Stub(timestampGen => timestampGen.Generate()).Return(timestamp);
                webRequest.Stub(request => request.ConsumerToken).Return(consumerToken);
                webRequest.Stub(request => request.NonceGenerator).Return(mockNonceGenerator);
                webRequest.Stub(request => request.TimestampGenerator).Return(mockTimestampGenerator);
                webRequest.Stub(request => request.RequestUri).Return(new Uri(url));
                webRequest.Stub(request => request.Method).Return("GET");
                webRequest.Stub(request => request.SetUri(string.Empty)).IgnoreArguments().Do(
                    (Action <string>)(uri => setUri = uri));
                mocks.ReplayAll();

                signer.SignWebRequest(webRequest);
            }
예제 #2
0
            public void given_no_parameters_in_url()
            {
                var url = new Uri("http://someplace.com/somepath?token=value");
                var queryStringParams = OAuthWebRequestSigner.GetQueryStringParameters(url);

                Assert.Equal(1, queryStringParams.Count());
                Assert.NotNull(queryStringParams.FirstOrDefault(kvp => kvp.Key == "token" && kvp.Value == "value"));
            }
예제 #3
0
            public void should_return_decoded_paramter_values()
            {
                var value             = "this' shdo*& get encoded";
                var url               = new Uri("http://someplace.com/somepath?token=value&messy=" + HttpUtility.UrlEncode(value));
                var queryStringParams = OAuthWebRequestSigner.GetQueryStringParameters(url);

                Assert.Equal(2, queryStringParams.Count());
                Assert.NotNull(queryStringParams.FirstOrDefault(kvp => kvp.Key == "messy" && kvp.Value == value));
            }
예제 #4
0
            public void when_trailing_slash()
            {
                var url = "HTTP://www.someurl.com/";

                Assert.Equal("http://www.someurl.com", OAuthWebRequestSigner.NormalizeUri(new Uri(url)));
            }
예제 #5
0
            public void when_including_query_string()
            {
                var url = "HTTP://www.someurl.com/?sometoken=somevalue";

                Assert.Equal("http://www.someurl.com", OAuthWebRequestSigner.NormalizeUri(new Uri(url)));
            }
예제 #6
0
            public void when_url_is_http_over_non_standard_port()
            {
                var url = "HTTP://www.someurl.com:8080";

                Assert.Equal("http://www.someurl.com:8080", OAuthWebRequestSigner.NormalizeUri(new Uri(url)));
            }
예제 #7
0
            public void when_url_is_uppercase()
            {
                var url = "HTTP://www.someurl.com";

                Assert.Equal("http://www.someurl.com", OAuthWebRequestSigner.NormalizeUri(new Uri(url)));
            }
예제 #8
0
            public void when_url_is_plain_standard_http_not_specifying_port()
            {
                var url = "http://www.someurl.com";

                Assert.Equal("http://www.someurl.com", OAuthWebRequestSigner.NormalizeUri(new Uri(url)));
            }