diff --git a/src/UriBuilder.Fluent.UnitTests/ExtensionTests.cs b/src/UriBuilder.Fluent.UnitTests/ExtensionTests.cs index 48319ce..8296516 100644 --- a/src/UriBuilder.Fluent.UnitTests/ExtensionTests.cs +++ b/src/UriBuilder.Fluent.UnitTests/ExtensionTests.cs @@ -71,6 +71,14 @@ namespace FluentUriBuilder.Tests Assert.Equal("http://awesome.com/?awesome", url.Uri.ToString()); } + [Fact] + public void TestAddFragmentArray() + { + var url = new UriBuilder("http://awesome.com") + .WithFragment("awesome", "cool", "dawg"); + Assert.Equal("http://awesome.com/#awesome=cool,dawg", url.Uri.ToString()); + } + [Fact] public void TestAddFragmentArrayint() { @@ -174,6 +182,40 @@ namespace FluentUriBuilder.Tests Assert.Equal("http://awesome.com/?yo=dawg&troll=toll&hammer", url.Uri.ToString()); } + [Fact] + public void AddFragmentWithNoValue() + { + var url = new UriBuilder("http://awesome.com") + .WithFragment("awesome", "yodawg") + .WithFragment("fun", null) + .WithFragment("cool", string.Empty); + Assert.Equal("http://awesome.com/#awesome=yodawg&fun&cool", url.Uri.ToString()); + } + + [Fact] + public void TestAddTwoUrlFragments() + { + var url = new UriBuilder("http://awesome.com") + .WithFragment("awesome", "yodawg") + .WithFragment("supg", "no2") + .WithFragment("supgf", "no22"); + Assert.Equal("http://awesome.com/#awesome=yodawg&supg=no2&supgf=no22", url.Uri.ToString()); + } + + [Fact] + public void AddDictOfFragments() + { + var dictionary = new Dictionary() + { + ["yo"] = "dawg", + ["troll"] = "toll", + ["hammer"] = string.Empty + }; + var url = new UriBuilder("http://awesome.com") + .WithFragment(dictionary); + Assert.Equal("http://awesome.com/#yo=dawg&troll=toll&hammer", url.Uri.ToString()); + } + [Fact] public void TestToEscapedString() { diff --git a/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs b/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs index cec579f..96540f4 100644 --- a/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs +++ b/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs @@ -99,7 +99,7 @@ namespace System { valuesEnum = new string[0]; } - var intitialValue = string.IsNullOrWhiteSpace(bld.Fragment) ? "" : $"{bld.Fragment.TrimStart('?')}&"; + var intitialValue = string.IsNullOrWhiteSpace(bld.Fragment) ? "" : $"{bld.Fragment.TrimStart('#')}&"; bld.Fragment = intitialValue.AppendKeyValue(key, valuesEnum); return bld; }