diff --git a/src/Bolt.Common.Extensions.UnitTests/StringExtensionTests.cs b/src/Bolt.Common.Extensions.UnitTests/StringExtensionTests.cs index 16babec..602779f 100644 --- a/src/Bolt.Common.Extensions.UnitTests/StringExtensionTests.cs +++ b/src/Bolt.Common.Extensions.UnitTests/StringExtensionTests.cs @@ -100,5 +100,11 @@ public void IsEndWithTest() var sut = "Hello world"; sut.IsEndWith("WORLD").ShouldBeTrue(); } + + [Theory] + [InlineData("", " cups", "")] + [InlineData("12", " cups", "12 cups")] + public void AppendIfNotEmpty(string source, string ending, string result) => + source.AppendIfNotEmpty(ending).ShouldBe(result); } } \ No newline at end of file diff --git a/src/Bolt.Common.Extensions/StringExtensions.cs b/src/Bolt.Common.Extensions/StringExtensions.cs index 4a05785..2cf2307 100644 --- a/src/Bolt.Common.Extensions/StringExtensions.cs +++ b/src/Bolt.Common.Extensions/StringExtensions.cs @@ -214,5 +214,15 @@ public static string FormatWith(this string source, params object[] args) { return string.Format(source, args); } + + /// + /// Appends an ending to a string if the source string is not empty + /// + /// + /// + /// + [DebuggerStepThrough] + public static string AppendIfNotEmpty(this string source, string ending) => + source.IsEmpty() ? source : string.Concat(source, ending); } }