diff --git a/src/NzbDrone.Common.Test/ExtensionTests/StringExtensionTests/FirstCharcacterToLowerFixture.cs b/src/NzbDrone.Common.Test/ExtensionTests/StringExtensionTests/FirstCharcacterToLowerFixture.cs
new file mode 100644
index 000000000..e1314dcca
--- /dev/null
+++ b/src/NzbDrone.Common.Test/ExtensionTests/StringExtensionTests/FirstCharcacterToLowerFixture.cs
@@ -0,0 +1,18 @@
+using FluentAssertions;
+using NUnit.Framework;
+using NzbDrone.Common.Extensions;
+
+namespace NzbDrone.Common.Test.ExtensionTests.StringExtensionTests
+{
+ [TestFixture]
+ public class FirstCharcacterToLowerFixture
+ {
+ [TestCase("Hello", "hello")]
+ [TestCase("CamelCase", "camelCase")]
+ [TestCase("A Full Sentence", "a Full Sentence")]
+ public void should_lower_case_first_character(string input, string expected)
+ {
+ input.FirstCharToLower().Should().Be(expected);
+ }
+ }
+}
diff --git a/src/NzbDrone.Common.Test/ExtensionTests/StringExtensionTests/FirstCharcacterToUpperFixture.cs b/src/NzbDrone.Common.Test/ExtensionTests/StringExtensionTests/FirstCharcacterToUpperFixture.cs
new file mode 100644
index 000000000..bf8169b60
--- /dev/null
+++ b/src/NzbDrone.Common.Test/ExtensionTests/StringExtensionTests/FirstCharcacterToUpperFixture.cs
@@ -0,0 +1,18 @@
+using FluentAssertions;
+using NUnit.Framework;
+using NzbDrone.Common.Extensions;
+
+namespace NzbDrone.Common.Test.ExtensionTests.StringExtensionTests
+{
+ [TestFixture]
+ public class FirstCharcacterToUpperFixture
+ {
+ [TestCase("hello", "Hello")]
+ [TestCase("camelCase", "CamelCase")]
+ [TestCase("a full sentence", "A full sentence")]
+ public void should_capitalize_first_character(string input, string expected)
+ {
+ input.FirstCharToUpper().Should().Be(expected);
+ }
+ }
+}
diff --git a/src/NzbDrone.Common.Test/NzbDrone.Common.Test.csproj b/src/NzbDrone.Common.Test/NzbDrone.Common.Test.csproj
index 612a2346a..9f547171e 100644
--- a/src/NzbDrone.Common.Test/NzbDrone.Common.Test.csproj
+++ b/src/NzbDrone.Common.Test/NzbDrone.Common.Test.csproj
@@ -85,6 +85,8 @@
+
+
diff --git a/src/NzbDrone.Common/Extensions/StringExtensions.cs b/src/NzbDrone.Common/Extensions/StringExtensions.cs
index ad5b14519..3de53ef0d 100644
--- a/src/NzbDrone.Common/Extensions/StringExtensions.cs
+++ b/src/NzbDrone.Common/Extensions/StringExtensions.cs
@@ -22,9 +22,14 @@ namespace NzbDrone.Common.Extensions
return "[NULL]";
}
+ public static string FirstCharToLower(this string input)
+ {
+ return input.First().ToString().ToLower() + input.Substring(1);
+ }
+
public static string FirstCharToUpper(this string input)
{
- return input.First().ToString().ToUpper() + string.Join("", input.Skip(1));
+ return input.First().ToString().ToUpper() + input.Substring(1);
}
public static string Inject(this string format, params object[] formattingArgs)