public void should_encode_form()
 {
     var form = new FormNode(NodeType.Object);
     form.Add("oh", NodeType.Value, Metadata.Empty, x => x.Value = "hai");
     form.Add(new FormValueNode("john", "zoidberg"), x => {});
     var stream = new MemoryStream();
     form.Encode(stream);
     stream.Position = 0;
     new StreamReader(stream).ReadToEnd().ShouldEqual("oh=hai&john=zoidberg");
 }
        public void should_parse_form()
        {
            var form = new FormNode("oh=hai&john=zoidberg");
            form.NodeType.ShouldEqual(NodeType.Object);
            var values = form.ToList();
            values.Count.ShouldEqual(2);

            var value = values.First();
            value.Name.ShouldEqual("oh");
            value.Value.ShouldEqual("hai");
            value.NodeType.ShouldEqual(NodeType.Value);

            value = values[1];
            value.Name.ShouldEqual("john");
            value.Value.ShouldEqual("zoidberg");
            value.NodeType.ShouldEqual(NodeType.Value);
        }