public void query_constructor_should_capture_values_correctly(string[] keys, string[] values, string expected)
        {
            var items = new List <KeyValuePair <string, string> >();

            for (var i = 0; i < keys.Length; i++)
            {
                items.Add(new KeyValuePair <string, string>(keys[i], values[i]));
            }
            var subject = new EncodingQueryParameters(items);

            subject.Value.Should().Be(expected);
        }
        public void encoding_should_match_example_in_RFC()
        {
            // https://tools.ietf.org/html/draft-ietf-oauth-signed-http-request-02#section-3.1
            // "b=bar", "a=foo", "c=duck"
            // b=bar&a=foo&c=duck
            // "p": [["b", "a", "c"], "u4LgkGUWhP9MsKrEjA4dizIllDXluDku6ZqCeyuR-JY"]

            var items = new List <KeyValuePair <string, string> >();

            items.Add(new KeyValuePair <string, string>("b", "bar"));
            items.Add(new KeyValuePair <string, string>("a", "foo"));
            items.Add(new KeyValuePair <string, string>("c", "duck"));
            var subject = new EncodingQueryParameters(items);

            subject.Keys.Count().Should().Be(3);
            subject.Keys.Should().ContainInOrder(new string[] { "b", "a", "c" });
            subject.Value.Should().Be("b=bar&a=foo&c=duck");

            var result = subject.Encode();

            result.HashedValue.Should().Be("u4LgkGUWhP9MsKrEjA4dizIllDXluDku6ZqCeyuR-JY");
        }