public void ValidateOAuthSignature()
        {
            // SUT = System Under Test
            var sut = new OAuthSignatureBuilder(_requestContext.AuthenticationContext);

            string oauthSignature = sut.CreateSignature(_requestContext.RequestParameters);

            // Second paramter from Twitter documentation: https://dev.twitter.com/oauth/overview/creating-signatures
            Assert.Equal(oauthSignature, "tnnArxj06cWHq44gCs1OSKk/jLY=");
        }
        public void ValidateSignatureBaseString()
        {
            var sut = new OAuthSignatureBuilder(_requestContext.AuthenticationContext);

            string signatureString = sut.GetSignatureBaseString(_requestContext.RequestParameters);

            // From "https://dev.twitter.com/oauth/overview/creating-signatures"
            const string twitterDocumentationSignatureBaseString =
                "POST&https%3A%2F%2Fapi.twitter.com%2F1%2Fstatuses%2Fupdate.json&include_entities%3Dtrue%26oauth_consumer_key%3Dxvz1evFS4wEEPTGEFPHBog%26oauth_nonce%3DkYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1318622958%26oauth_token%3D370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb%26oauth_version%3D1.0%26status%3DHello%2520Ladies%2520%252B%2520Gentlemen%252C%2520a%2520signed%2520OAuth%2520request%2521";

            Assert.Equal(signatureString, twitterDocumentationSignatureBaseString);
        }
        public void ValidateRequestTokenOAuthSignature()
        {
            var authenticationContext = new AuthenticationContext();

            // SUT = System Under Test
            var sut = new OAuthSignatureBuilder(authenticationContext);

            RequestParameters requestParameters = new RequestTokenRequestParameters(authenticationContext, "oob");

            requestParameters.OAuthNonce     = "e0d92fb7d5264baf85321de413176e9d";
            requestParameters.OAuthTimestamp = "1440899892";

            string       baseString         = sut.GetSignatureBaseString(requestParameters);
            const string expectedBaseString = "POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&oauth_callback%3Doob%26oauth_consumer_key%3DG572rfcAFGznOnMZ2DDgCaBJV%26oauth_nonce%3De0d92fb7d5264baf85321de413176e9d%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1440899892%26oauth_version%3D1.0";

            Assert.Equal(expectedBaseString, baseString);

            string oauthSignature = sut.CreateSignature(requestParameters);

            // Second paramter from Twitter documentation: https://dev.twitter.com/oauth/overview/creating-signatures
            Assert.Equal(oauthSignature, "NIkCr9R68INkZ87vt9D3N6Gb8BY=");
        }