public void ReadPastEndIsNull()
        {
            using (var parser = new FormEncodedResponseParser(new StringReader("MyKey=MyValue")))
            {
                var first = parser.Read();
                Assert.IsNotNull(first);

                var second = parser.Read();
                Assert.IsNull(second);
            }
        }
        public void ReadGetsMultipleValues()
        {
            using (var parser = new FormEncodedResponseParser(new StringReader("MyKey=MyValue&MyKey2=MyValue2")))
            {
                var first = parser.Read();
                Assert.AreEqual("MyKey", first.Item1);
                Assert.AreEqual("MyValue", first.Item2);

                var second = parser.Read();
                Assert.AreEqual("MyKey2", second.Item1);
                Assert.AreEqual("MyValue2", second.Item2);
            }
        }
        public void ReadEmptyValuesAsEmptyString()
        {
            using (var parser = new FormEncodedResponseParser(new StringReader("KeyIsNull=&KeyHasValue=Value")))
            {
                var first = parser.Read();
                Assert.AreEqual("KeyIsNull", first.Item1);
                Assert.AreEqual(string.Empty, first.Item2);

                var second = parser.Read();
                Assert.AreEqual("KeyHasValue", second.Item1);
                Assert.AreEqual("Value", second.Item2);
            }
        }
 public void ReadEmptyIsNull()
 {
     using (var parser = new FormEncodedResponseParser(new StringReader("")))
     {
         var val = parser.Read();
         Assert.IsNull(val);
     }
 }
 public void HexEncodedValueIsParsed()
 {
     using (var parser = new FormEncodedResponseParser(new StringReader("My%20Key=My%20Value")))
     {
         var val = parser.Read();
         Assert.AreEqual("My Key", val.Item1);
         Assert.AreEqual("My Value", val.Item2);
     }
 }