public void create_url_with_querystring_and_inputmodel() { var url = new RouteInput<SampleViewModel>("test/edit/{InPath}"); url.AddRouteInput(x => x.InPath); url.AddQueryInput(x => x.InQueryString); url.CreateUrlFromInput(new SampleViewModel { InPath = "5", InQueryString = "query" }).ShouldEqual("test/edit/5?InQueryString=query"); }
public void create_url_with_variables_in_querystring() { var url = new RouteInput<SampleViewModel>("/my/sample/path"); url.AddQueryInput(x => x.InQueryString); url.CreateUrlFromInput(new SampleViewModel { InQueryString = "query" }).ShouldEqual("/my/sample/path?InQueryString=query"); }
public void create_url_with_null_input_model_and_no_default_value_specified_for_optional_input() { var url = new RouteInput<SampleViewModelWithInputs>("test/edit/{OptionalInput}"); url.AddRouteInput(x => x.OptionalInput); url .CreateUrlFromInput(null) .ShouldEndWith("test/edit/default"); }
public void create_url_with_null_input_model_and_no_default_value_specified_for_required_input() { var url = new RouteInput<SampleViewModelWithInputs>("test/edit/{RequiredInput}"); url.AddRouteInput(x => x.RequiredInput); typeof (FubuException).ShouldBeThrownBy(() => url.CreateUrlFromInput(null)); }
public void create_url_with_multiple_variables_in_path() { var url = new RouteInput<SampleViewModel>("test/edit/{InPath}/{AlsoInPath}"); url.AddRouteInput(x => x.InPath); url.AddRouteInput(x => x.AlsoInPath); url.CreateUrlFromInput(new SampleViewModel { InPath = "5", AlsoInPath = "some text" }).ShouldEqual("test/edit/5/some%20text"); }
public void create_url_with_multiple_variables_in_querystring() { var url = new RouteInput<SampleViewModel>("/my/sample/path"); var props = new List<Expression<Func<SampleViewModel, object>>> { x => x.InQueryString, x => x.AlsoInQueryString }; var inputs = props.Select(x => new RouteParameter(ReflectionHelper.GetAccessor(x))); url.AddQueryInputs(inputs); url.CreateUrlFromInput(new SampleViewModel { InQueryString = "query", AlsoInQueryString = "alsoquery" }) .ShouldEqual("/my/sample/path?InQueryString=query&AlsoInQueryString=alsoquery"); }
public void create_url_with_input_model_and_default_value_for_required_input() { var url = new RouteInput<SampleViewModelWithInputs>("test/edit/{RequiredInput}"); url.AddRouteInput(x => x.RequiredInput); url .CreateUrlFromInput(new SampleViewModelWithInputs { RequiredInput = "a" }) .ShouldEndWith("test/edit/a"); }
public void create_url_with_input_model() { var url = new RouteInput<SampleViewModel>("test/edit/{InPath}"); url.AddRouteInput(x => x.InPath); url.CreateUrlFromInput(new SampleViewModel { InPath = "5" }).ShouldEqual("test/edit/5"); }
public void create_url_will_escape_the_url() { var url = new RouteInput<SampleViewModel>("test/edit/{InPath}"); url.AddRouteInput(x => x.InPath); url.CreateUrlFromInput(new SampleViewModel { InPath = "some text" }).ShouldEqual("test/edit/some%20text"); }
public void will_not_use_query_string_if_there_is_no_value() { var url = new RouteInput<SampleViewModel>("test/edit/{InPath}"); url.AddRouteInput(x => x.InPath); url.AddQueryInput(x => x.InQueryString); url.CreateUrlFromInput(new SampleViewModel { InPath = "5", InQueryString = null }).ShouldEqual("test/edit/5"); }
public void create_url_with_input_model_and_encoded_variable() { var url = new RouteInput<SampleViewModel>("test/edit/{InPath}"); url.AddRouteInput(x => x.InPath); url.CreateUrlFromInput(new SampleViewModel { InPath = "abc/def&ghi=jkl" }).ShouldEqual("test/edit/abc%2Fdef%26ghi%3Djkl"); }