QueryBuilder Add overload for IEnumerable.
This commit is contained in:
parent
af279f6d2b
commit
7be9cefc4c
|
|
@ -14,16 +14,24 @@ namespace Microsoft.AspNet.WebUtilities
|
||||||
{
|
{
|
||||||
private IList<KeyValuePair<string, string>> _params;
|
private IList<KeyValuePair<string, string>> _params;
|
||||||
|
|
||||||
public QueryBuilder()
|
public QueryBuilder()
|
||||||
{
|
{
|
||||||
_params = new List<KeyValuePair<string, string>>();
|
_params = new List<KeyValuePair<string, string>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueryBuilder(IEnumerable<KeyValuePair<string, string>> parameters)
|
public QueryBuilder(IEnumerable<KeyValuePair<string, string>> parameters)
|
||||||
{
|
{
|
||||||
_params = new List<KeyValuePair<string, string>>(parameters);
|
_params = new List<KeyValuePair<string, string>>(parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Add(string key, IEnumerable<string> values)
|
||||||
|
{
|
||||||
|
foreach (var value in values)
|
||||||
|
{
|
||||||
|
_params.Add(new KeyValuePair<string, string>(key, value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void Add(string key, string value)
|
public void Add(string key, string value)
|
||||||
{
|
{
|
||||||
_params.Add(new KeyValuePair<string, string>(key, value));
|
_params.Add(new KeyValuePair<string, string>(key, value));
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,14 @@ namespace Microsoft.AspNet.WebUtilities
|
||||||
Assert.Equal("?key1=value1&key2=value2&key3=value3", builder.ToString());
|
Assert.Equal("?key1=value1&key2=value2&key3=value3", builder.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void AddIEnumerableValues_AddedInOrder()
|
||||||
|
{
|
||||||
|
var builder = new QueryBuilder();
|
||||||
|
builder.Add("key", new[] { "value1", "value2", "value3" });
|
||||||
|
Assert.Equal("?key=value1&key=value2&key=value3", builder.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void AddMultipleValuesViaConstructor_AddedInOrder()
|
public void AddMultipleValuesViaConstructor_AddedInOrder()
|
||||||
{
|
{
|
||||||
|
|
@ -73,5 +81,18 @@ namespace Microsoft.AspNet.WebUtilities
|
||||||
};
|
};
|
||||||
Assert.Equal("?key1=value1&key2=value2&key3=value3", builder.ToString());
|
Assert.Equal("?key1=value1&key2=value2&key3=value3", builder.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void CopyViaConstructor_AddedInOrder()
|
||||||
|
{
|
||||||
|
var builder = new QueryBuilder()
|
||||||
|
{
|
||||||
|
{ "key1", "value1" },
|
||||||
|
{ "key2", "value2" },
|
||||||
|
{ "key3", "value3" },
|
||||||
|
};
|
||||||
|
var builder1 = new QueryBuilder(builder);
|
||||||
|
Assert.Equal("?key1=value1&key2=value2&key3=value3", builder1.ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue