public static string GenerateQueryString() { var model = new TestModel { StringProperty = "String test", DateTimeProperty = DateTime.UtcNow, ListStringProperties = new List <string> { "List string test 1", "List string test 2" }, People = new List <string> { "Person 1", "Person 2" }, TestModel2 = new TestModel2 { IntProperty = 10, TestModel3 = new TestModel3 { GuidProperty = Guid.NewGuid() } } }; var utcNow = DateTime.UtcNow; var generator = new QueryStringGenerator <TestModel>(model); return(generator.Generate()); }
protected void Test(TModel model, string expectedQueryString, Func <IConverter> createConverter, Func <IDeconverter> createDeconverter) { // Convert it. var queryString = new QueryStringGenerator(createConverter()).GenerateQueryString(model); Assert.AreEqual(expectedQueryString, queryString.ToString()); // Deconvert it. AssertAreEqual(model, new QueryStringBinder(createDeconverter()).BindQueryString(queryString) as TModel); AssertAreEqual(model, new ModelBinder(createDeconverter(), null).BindModel(null, new ModelBindingContext { FallbackToEmptyPrefix = true, ValueProvider = new ReadOnlyQueryStringValueProvider(queryString) }) as TModel); }