feat: Adding TryFromIpIdString method

This commit is contained in:
Chris Cameron
2018-10-29 14:13:46 -04:00
parent 24e665de84
commit db14eb1dde
2 changed files with 41 additions and 9 deletions

View File

@@ -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]

View File

@@ -564,6 +564,30 @@ namespace ICD.Common.Utils
}
}
/// <summary>
/// Formats "0xFF" to an IPID.
/// </summary>
/// <param name="value"></param>
/// <param name="result"></param>
/// <returns></returns>
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;
}
}
/// <summary>
/// Removes all whitespace from the string.
/// </summary>