diff --git a/MewtocolNet/Mewtocol/MewtocolHelpers.cs b/MewtocolNet/Mewtocol/MewtocolHelpers.cs index 11cb77e..1b82ccc 100644 --- a/MewtocolNet/Mewtocol/MewtocolHelpers.cs +++ b/MewtocolNet/Mewtocol/MewtocolHelpers.cs @@ -46,17 +46,9 @@ internal static string BuildBCCFrame (this string asciiArr) { } - internal static byte[] ParseDTBytes (this string _onString ,int _blockSize = 4) { - - var res = new Regex(@"\%([0-9]{2})\$RD(.{"+_blockSize+"})").Match(_onString); - if(res.Success) { - string val = res.Groups[2].Value; - return val.HexStringToByteArray(); - } - return null; - - } - + /// + /// Parses the byte string from a incoming RD message + /// internal static string ParseDTByteString (this string _onString, int _blockSize = 4) { if (_onString == null) @@ -71,7 +63,7 @@ internal static string ParseDTByteString (this string _onString, int _blockSize } - internal static bool? ParseRCSingleBit (this string _onString, int _blockSize = 4) { + internal static bool? ParseRCSingleBit (this string _onString) { var res = new Regex(@"\%([0-9]{2})\$RC(.)").Match(_onString); if (res.Success) { diff --git a/MewtocolTests/TestHelperExtensions.cs b/MewtocolTests/TestHelperExtensions.cs index d0dc5e7..b39e65e 100644 --- a/MewtocolTests/TestHelperExtensions.cs +++ b/MewtocolTests/TestHelperExtensions.cs @@ -31,7 +31,7 @@ public void ToBitStringGeneration () { } [Fact(DisplayName = nameof(MewtocolHelpers.ToHexString))] - public void ToHexStringGeneration() { + public void ToHexStringGeneration () { var bytes = new byte[6] { 0x10, @@ -47,7 +47,7 @@ public void ToHexStringGeneration() { } [Fact(DisplayName = nameof(MewtocolHelpers.ToHexASCIIBytes))] - public void ToHexASCIIBytesGeneration() { + public void ToHexASCIIBytesGeneration () { string test = "Hello, world!"; @@ -69,6 +69,41 @@ public void ToHexASCIIBytesGeneration() { } + [Fact(DisplayName = nameof(MewtocolHelpers.BuildBCCFrame))] + public void BuildBCCFrameGeneration () { + + string test = "%01#RCSX0000"; + string expect = "%01#RCSX00001D"; + + Assert.Equal(expect, test.BuildBCCFrame()); + + } + + [Fact(DisplayName = nameof(MewtocolHelpers.ParseDTByteString))] + public void ParseDTByteStringGeneration () { + + var testList = new List() { + "1112", + "1C2C", + "FFFF", + }; + + foreach (var item in testList) { + + Assert.Equal(item, $"%01$RD{item}".BuildBCCFrame().ParseDTByteString()); + + } + + } + + [Fact(DisplayName = nameof(MewtocolHelpers.ParseRCSingleBit))] + public void ParseRCSingleBitGeneration () { + + Assert.True($"%01$RC1".BuildBCCFrame().ParseRCSingleBit()); + Assert.False($"%01$RC0".BuildBCCFrame().ParseRCSingleBit()); + + } + } } \ No newline at end of file