From a64347e96f497ef0982d6c9ef211995e684b8025 Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Sun, 9 Jan 2022 13:06:56 -0600 Subject: [PATCH] chore: Add TrimNewlines() string extension method --- .../Extensions/StringExtensionsTest.cs | 22 +++++++++++++++++++ src/Common/Extensions/StringExtensions.cs | 5 +++++ src/TestLibrary/StringUtils.cs | 6 +++-- 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 src/Common.Tests/Extensions/StringExtensionsTest.cs diff --git a/src/Common.Tests/Extensions/StringExtensionsTest.cs b/src/Common.Tests/Extensions/StringExtensionsTest.cs new file mode 100644 index 00000000..b179baa3 --- /dev/null +++ b/src/Common.Tests/Extensions/StringExtensionsTest.cs @@ -0,0 +1,22 @@ +using Common.Extensions; +using FluentAssertions; +using NUnit.Framework; + +namespace Common.Tests.Extensions; + +[TestFixture] +[Parallelizable(ParallelScope.All)] +public class StringExtensionsTest +{ + [Test] + public void Carriage_returns_and_newlines_are_stripped_from_front_and_back() + { + "\r\ntest\n\r".TrimNewlines().Should().Be("test"); + } + + [Test] + public void Spaces_are_ignored_when_stripping_newlines() + { + "\n test \r".TrimNewlines().Should().Be(" test "); + } +} diff --git a/src/Common/Extensions/StringExtensions.cs b/src/Common/Extensions/StringExtensions.cs index 3689a960..909ff2b5 100644 --- a/src/Common/Extensions/StringExtensions.cs +++ b/src/Common/Extensions/StringExtensions.cs @@ -29,4 +29,9 @@ public static class StringExtensions { return string.Format(value, args); } + + public static string TrimNewlines(this string value) + { + return value.Trim('\r', '\n'); + } } diff --git a/src/TestLibrary/StringUtils.cs b/src/TestLibrary/StringUtils.cs index 7c22f939..c9acb75d 100644 --- a/src/TestLibrary/StringUtils.cs +++ b/src/TestLibrary/StringUtils.cs @@ -1,6 +1,8 @@ -namespace TestLibrary; +using Common.Extensions; + +namespace TestLibrary; public static class StringUtils { - public static string TrimmedString(string value) => value.Trim('\r', '\n'); + public static string TrimmedString(string value) => value.TrimNewlines(); }