Tim Van Wassenhove home

Adding parameters to an Uri is an example where my NameValueCollectionHelper comes in handy. Although UriTemplate allows us to bind parameters, it doesn’t really support add/remove/fail on duplicate parameters. Here is an example

[TestMethod]
public void TestAddParametersReplaceWithReplaceOfExistingParameters()
{
	Uri originalUri = new Uri("http://www.example.com/path/?key1=val1&key2=val2#abcd")

	NameValueCollection parameters = new NameValueCollection();
	parameters.Add("key1", "newval");
	parameters.Add("key3", "val3");

	Uri expected = new Uri("http://www.example.com/path/?key1=newval&key2=val2&key3=val3#abcd");

	Uri actual = UriHelper.AddParameters(originalUri, parameters, DuplicateKeyBehavior.Replace);
	Assert.AreEqual(expected, actual);
}

Once again, source of this class can be found at BeTimvwFramework.