diff --git a/src/HeboTech.ATLib.Tests/Events/UssdResponseEventArgsTests.cs b/src/HeboTech.ATLib.Tests/Events/UssdResponseEventArgsTests.cs new file mode 100644 index 0000000..a15eec0 --- /dev/null +++ b/src/HeboTech.ATLib.Tests/Events/UssdResponseEventArgsTests.cs @@ -0,0 +1,32 @@ +using HeboTech.ATLib.Events; +using Xunit; + +namespace HeboTech.ATLib.Tests.Events +{ + public class UssdResponseEventArgsTests + { + [Fact] + public void CreateFromResponse_accepts_singleline_response() + { + string response = "+CUSD: 1,\"Single line response\",15"; + + UssdResponseEventArgs dut = UssdResponseEventArgs.CreateFromResponse(response); + + Assert.Equal(1, dut.Status); + Assert.Equal("Single line response", dut.Response); + Assert.Equal(15, dut.CodingScheme); + } + + [Fact] + public void CreateFromResponse_accepts_multiline_response() + { + string response = "+CUSD: 1,\"Line1\r\nLine 2\r\nLine 3\r\nLine 4\r\nLine 5\r\nLine 6\r\nLine 7\",15"; + + UssdResponseEventArgs dut = UssdResponseEventArgs.CreateFromResponse(response); + + Assert.Equal(1, dut.Status); + Assert.Equal("Line1\r\nLine 2\r\nLine 3\r\nLine 4\r\nLine 5\r\nLine 6\r\nLine 7", dut.Response); + Assert.Equal(15, dut.CodingScheme); + } + } +} diff --git a/src/HeboTech.ATLib/Events/UssdResponseEventArgs.cs b/src/HeboTech.ATLib/Events/UssdResponseEventArgs.cs index 4f99adc..da0abbb 100644 --- a/src/HeboTech.ATLib/Events/UssdResponseEventArgs.cs +++ b/src/HeboTech.ATLib/Events/UssdResponseEventArgs.cs @@ -17,7 +17,7 @@ public UssdResponseEventArgs(int status, string response, int codingScheme) public static UssdResponseEventArgs CreateFromResponse(string response) { - var match = Regex.Match(response, @"\+CUSD:\s(?\d),""(?.*)"",(?\d+)"); + var match = Regex.Match(response, @"\+CUSD:\s(?\d),""(?(?s).*)"",(?\d+)"); if (match.Success) { int status = int.Parse(match.Groups["status"].Value); diff --git a/src/HeboTech.ATLib/HeboTech.ATLib.csproj b/src/HeboTech.ATLib/HeboTech.ATLib.csproj index 5aa9bc3..7422255 100644 --- a/src/HeboTech.ATLib/HeboTech.ATLib.csproj +++ b/src/HeboTech.ATLib/HeboTech.ATLib.csproj @@ -4,7 +4,7 @@ netstandard2.1 HeboTech HeboTech ATLib - 4.0.0 + 4.1.0 HeboTech.ATLib atcommand at command gsm sms hayes simcom d-link tp-link dwm-222 ma260 sim5320 AT command library that makes it easy to communicate with modems. @@ -13,8 +13,8 @@ MIT https://github.com/hbjorgo/ATLib https://github.com/hbjorgo/ATLib/releases - 4.0.0.0 - 4.0.0.0 + 4.1.0.0 + 4.1.0.0