コード例 #1
0
ファイル: LinkTests.cs プロジェクト: rollingthunder/Link
        public void AddMultipleParametersToLink()
        {
            var link = new Link() { Target = new Uri("http://localhost/api/{dataset}/customer{?foo,bar,baz}") };
            link.SetParameter("foo", "bar");
            link.SetParameter("baz", "99");
            link.SetParameter("dataset", "bob");

            var uri = link.GetResolvedTarget();

            Assert.Equal("http://localhost/api/bob/customer?foo=bar&baz=99", uri.AbsoluteUri);
        }
コード例 #2
0
        public void Add_no_parameters_to_uri()
        {
            var link = new Link()
            {
                Target = new Uri("http://example/customer")
            };

            link.AddParametersAsTemplate();

            var resolvedTarget = link.GetResolvedTarget().OriginalString;
            Assert.Equal("http://example/customer", resolvedTarget);
        }
コード例 #3
0
        public void Add_parameters_to_uri_with_query_string()
        {
            var link = new Link()
            {
                Target = new Uri("http://example/customer?view=true")
            };

            link.SetParameter("id", 99);

            link.AddParametersAsTemplate();

            var resolvedTarget = link.GetResolvedTarget().OriginalString;
            Assert.Equal("http://example/customer?view=true&id=99", resolvedTarget);
        }
コード例 #4
0
        public void Add_multiple_parameters_to_uri()
        {
            var link = new Link()
            {
                Target = new Uri("http://example/customer")
            };

            link.SetParameter("id", 99);
            link.SetParameter("view", false);

            link.AddParametersAsTemplate();

            var resolvedTarget = link.GetResolvedTarget().OriginalString;
            Assert.Equal("http://example/customer?id=99&view=False", resolvedTarget);
        }
コード例 #5
0
        public void Change_an_existing_parameter()
        {
            var link = new Link()
            {
                Target = new Uri("http://example/customer?view=False")
            };

            link.SetParameter("view",true);

            link.AddParametersAsTemplate(true);

            var resolvedTarget = link.GetResolvedTarget().OriginalString;
            Assert.Equal("http://example/customer?view=True", resolvedTarget);
        }
コード例 #6
0
        public void Add_parameters_to_uri_with_query_string_ignoring_path_parameter()
        {
            var link = new Link()
            {
                Target = new Uri("http://example/customer/{id}?view=true")
            };

            link.SetParameter("id", 99);
            link.SetParameter("context", "detail");

            link.AddParametersAsTemplate();

            var resolvedTarget = link.GetResolvedTarget().OriginalString;
            Assert.Equal("http://example/customer/99?view=true&context=detail", resolvedTarget);
        }
コード例 #7
0
        public void Update_existing_parameters_in_query_string_automatically()
        {
            var link = new Link()
            {
                Target = new Uri("http://example/customer?view=true"),
                AddNonTemplatedParametersToQueryString = true
            };

            link.SetParameter("view", false);

            var resolvedTarget = link.GetResolvedTarget().OriginalString;
            Assert.Equal("http://example/customer?view=False", resolvedTarget);
        }
コード例 #8
0
        public void Change_an_existing_parameter_within_multiple()
        {
            var link = new Link()
            {
                Target = new Uri("http://example/customer?view=False&foo=bar")
            };

            link.CreateParametersFromQueryString();

            link.SetParameter("view", true);

            link.AddParametersAsTemplate(true);

            var resolvedTarget = link.GetResolvedTarget().OriginalString;
            Assert.Equal("http://example/customer?view=True&foo=bar", resolvedTarget);
        }