diff --git a/ICD.Common.Utils.Tests/StringUtilsTest.cs b/ICD.Common.Utils.Tests/StringUtilsTest.cs
index c30931e..18318ff 100644
--- a/ICD.Common.Utils.Tests/StringUtilsTest.cs
+++ b/ICD.Common.Utils.Tests/StringUtilsTest.cs
@@ -61,10 +61,10 @@ namespace ICD.Common.Utils.Tests
Assert.AreEqual("[-3 - 5]", StringUtils.RangeFormat(-3, 5));
}
- [Test, UsedImplicitly]
- public void UppercaseFirstTest()
+ [TestCase("foobar", "Foobar")]
+ public void UppercaseFirstTest(string value, string expected)
{
- Assert.AreEqual("Foobar", StringUtils.UppercaseFirst("foobar"));
+ Assert.AreEqual(expected, StringUtils.UppercaseFirst(value));
}
[TestCase("test", "Test")]
@@ -74,16 +74,24 @@ namespace ICD.Common.Utils.Tests
Assert.AreEqual(expected, StringUtils.ToTitleCase(input));
}
- [Test, UsedImplicitly]
- public void ToIpIdStringTest()
+ [TestCase((byte)0x67, "0x67")]
+ public void ToIpIdStringTest(byte ipid, string expected)
{
- Assert.AreEqual("0x67", StringUtils.ToIpIdString(0x67));
+ Assert.AreEqual(expected, StringUtils.ToIpIdString(ipid));
}
- [Test, UsedImplicitly]
- public void FromIpIdStringTest()
+ [TestCase("0x67", (byte)0x67)]
+ public void FromIpIdStringTest(string value, byte expected)
{
- Assert.AreEqual(0x67, StringUtils.FromIpIdString("0x67"));
+ Assert.AreEqual(expected, StringUtils.FromIpIdString(value));
+ }
+
+ [TestCase("0x67", true, (byte)0x67)]
+ public void TryFromIpIdStringTest(string value, bool expected, byte expectedOutput)
+ {
+ byte output;
+ Assert.AreEqual(expected, StringUtils.TryFromIpIdString(value, out output));
+ Assert.AreEqual(expectedOutput, output);
}
[UsedImplicitly]
diff --git a/ICD.Common.Utils/StringUtils.cs b/ICD.Common.Utils/StringUtils.cs
index fa323c4..2569b14 100644
--- a/ICD.Common.Utils/StringUtils.cs
+++ b/ICD.Common.Utils/StringUtils.cs
@@ -564,6 +564,30 @@ namespace ICD.Common.Utils
}
}
+ ///
+ /// Formats "0xFF" to an IPID.
+ ///
+ ///
+ ///
+ ///
+ public static bool TryFromIpIdString(string value, out byte result)
+ {
+ if (value == null)
+ throw new ArgumentNullException("value");
+
+ result = 0;
+
+ try
+ {
+ result = (byte)Convert.ToInt64(value, 16);
+ return true;
+ }
+ catch (ArgumentOutOfRangeException)
+ {
+ return false;
+ }
+ }
+
///
/// Removes all whitespace from the string.
///