public void DeserializeCollection()
        {
            var serializer = new ParamSerializer();
            var collection = new NameValueCollection
                                    {
                                            { "Prop1", "test" },
                                            { "Prop2", "10" },
                                            { "Prop3", "32.45" },
                                            { "Prop4", "true" },
                                            { "Prop5", "2013-10-03" },
                                            { "Prop6", "test1" },
                                            { "Prop6", "test2" },
                                            { "Prop6", "test3" },
                                            { "Prop6", "test4" },
                                    };
            var startObj = new FakeObject
                             {
                                 Prop1 = "test",
                                 Prop2 = 10,
                                 Prop3 = 32.45,
                                 Prop4 = true,
                                 Prop5 = new DateTime(2013, 10, 3),
                                 Prop6 = new[] { "test1", "test2", "test3", "test4" },
                             };

            var endObj = serializer.Deserialize<FakeObject>(collection);

            Assert.AreEqual(startObj, endObj);
        }
        public void SingleObjectParam()
        {
            // Arrange
            var handler = new FakeHandler();
            var method = handler.GetType().GetMethod("SingleObjectParam");
            var miw = new MethodInfoWrapper<FakeHandler>(method);
            var input = new FakeObject
                           {
                               Prop1 = "val1",
                               Prop2 = 20,
                               Prop3 = 20.5,
                               Prop4 = true,
                               Prop5 = DateTime.Now,
                               Prop6 = new string[] { "va1", "val2", "val3" }
                           };

            // Act
            miw.BindValues(JObject.FromObject(input));
            dynamic output = miw.Invoke(handler);

            // Assert
            Assert.AreEqual(1, miw.MatchedParameters());
            Assert.AreEqual(input, output);
        }
 public dynamic SingleObjectParam(FakeObject param1)
 {
     return(param1);
 }
 public dynamic MultiTypeParam(string param1, int param2, double param3, bool param4, DateTime param5, string[] param6, FakeObject param7)
 {
     return(new { param1, param2, param3, param4, param5, param6, param7 });
 }
 public dynamic SingleObjectParam(FakeObject param1)
 {
     return param1;
 }
 public dynamic SingleArrayOfObjectParam(FakeObject[] param1)
 {
     return param1;
 }
 public dynamic MultiTypeParam(string param1, int param2, double param3, bool param4, DateTime param5, string[] param6, FakeObject param7)
 {
     return new { param1, param2, param3, param4, param5, param6, param7 };
 }