Skip to content

Commit

Permalink
Merge pull request #734 from DuendeSoftware/dom/string_join
Browse files Browse the repository at this point in the history
Replace home grown logic of ToSpaceSeparatedString with String.Join
  • Loading branch information
leastprivilege authored Feb 21, 2022
2 parents 6624811 + f1fdfac commit 5a6e73e
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 17 deletions.
9 changes: 1 addition & 8 deletions src/EntityFramework.Storage/Extensions/StringsExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,7 @@ public static string ToSpaceSeparatedString(this IEnumerable<string> list)
return string.Empty;
}

var sb = new StringBuilder(100);

foreach (var element in list)
{
sb.Append(element + " ");
}

return sb.ToString().Trim();
return String.Join(' ', list);
}

[DebuggerStepThrough]
Expand Down
10 changes: 1 addition & 9 deletions src/IdentityServer/Extensions/StringsExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ namespace Duende.IdentityServer.Extensions;

internal static class StringExtensions
{
// todo: use string.Join instead!
[DebuggerStepThrough]
public static string ToSpaceSeparatedString(this IEnumerable<string> list)
{
Expand All @@ -24,14 +23,7 @@ public static string ToSpaceSeparatedString(this IEnumerable<string> list)
return string.Empty;
}

var sb = new StringBuilder(100);

foreach (var element in list)
{
sb.Append(element + " ");
}

return sb.ToString().Trim();
return String.Join(' ', list);
}

[DebuggerStepThrough]
Expand Down
35 changes: 35 additions & 0 deletions test/IdentityServer.UnitTests/Extensions/StringExtensionsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using Xunit;
using Duende.IdentityServer.Extensions;
using FluentAssertions;
using System.Linq;

namespace UnitTests.Extensions;

Expand Down Expand Up @@ -76,6 +77,40 @@ public void TestGetOrigin()
CheckOrigin("test://localhost:8080/test/resource", "test://localhost:8080");
}

[Fact]
[Trait("Category", Category)]
public void ToSpaceSeparatedString_should_return_correct_value()
{
var value = new[] { "foo", "bar", "baz", "baz", "foo", "bar" }.ToSpaceSeparatedString();
value.Should().Be("foo bar baz baz foo bar");
}

[Fact]
[Trait("Category", Category)]
public void FromSpaceSeparatedString_should_return_correct_values()
{
var values = "foo bar baz baz foo bar".FromSpaceSeparatedString().ToArray();
values.Length.Should().Be(6);
values[0].Should().Be("foo");
values[1].Should().Be("bar");
values[2].Should().Be("baz");
values[3].Should().Be("baz");
values[4].Should().Be("foo");
values[5].Should().Be("bar");
}

[Fact]
[Trait("Category", Category)]
public void FromSpaceSeparatedString_should_only_process_spaces()
{
var values = "foo bar\tbaz baz\rfoo bar\r\nbar".FromSpaceSeparatedString().ToArray();
values.Length.Should().Be(4);
values[0].Should().Be("foo");
values[1].Should().Be("bar\tbaz");
values[2].Should().Be("baz\rfoo");
values[3].Should().Be("bar\r\nbar");
}


// scope parsing

Expand Down

0 comments on commit 5a6e73e

Please sign in to comment.