diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs index 3096f7101..925eeb85a 100644 --- a/TBF/Properties/AssemblyInfo.cs +++ b/TBF/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("3.9.2146.4")] -[assembly: AssemblyFileVersion("3.9.2146.4")] +[assembly: AssemblyVersion("3.9.2146.5")] +[assembly: AssemblyFileVersion("3.9.2146.5")] diff --git a/TBF/Rig/RegisterReaders/PoseidonCmdStartStop/CliRunner.cs b/TBF/Rig/RegisterReaders/PoseidonCmdStartStop/CliRunner.cs index dc3153a46..45567a7d3 100644 --- a/TBF/Rig/RegisterReaders/PoseidonCmdStartStop/CliRunner.cs +++ b/TBF/Rig/RegisterReaders/PoseidonCmdStartStop/CliRunner.cs @@ -156,22 +156,33 @@ namespace TBF.Rig.RegisterReaders.PoseidonCmdStartStop // Extract JSON part string json = ExtractJson(allOutput); + if (TryJsonStringDeserialize(json, out T runAndCaptureJsonAsync)) return runAndCaptureJsonAsync; + + return default; + } + + public bool TryJsonStringDeserialize(string json, out T runAndCaptureJsonAsync) where T : new() + { if (json != null) { try { - return JsonConvert.DeserializeObject(json); + runAndCaptureJsonAsync = JsonConvert.DeserializeObject(json); + return true; } catch (Exception ex) { log.Debug(ex.Message); - return TryConvert(json); + runAndCaptureJsonAsync = TryConvert(json); + return true; } } - return default; + runAndCaptureJsonAsync = default; + return false; } + private static T TryConvert(string json) where T : new() { @@ -210,7 +221,7 @@ namespace TBF.Rig.RegisterReaders.PoseidonCmdStartStop } - private string ExtractJson(string text) + public string ExtractJson(string text) { int start = text.IndexOf('{'); int end = text.LastIndexOf('}'); diff --git a/TBFTests/Rig/RegisterReaders/PoseidonCmdStartStop/CliRunnerTest.cs b/TBFTests/Rig/RegisterReaders/PoseidonCmdStartStop/CliRunnerTest.cs new file mode 100644 index 000000000..b2f4f03a8 --- /dev/null +++ b/TBFTests/Rig/RegisterReaders/PoseidonCmdStartStop/CliRunnerTest.cs @@ -0,0 +1,30 @@ +using System; +using JetBrains.Annotations; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using TBF.Rig.RegisterReaders.PoseidonCmdStartStop; + +namespace TBFTests.Rig.RegisterReaders.PoseidonCmdStartStop +{ + [TestClass] + [TestSubject(typeof(CliRunner))] + public class CliRunnerTest + { + + [TestMethod] + public void ExtractJson_Test() + { + String allOutput = ""; + CliRunner cliRunner = new CliRunner(false); + string json = cliRunner.ExtractJson(allOutput); + + Assert.IsTrue(!string.IsNullOrEmpty(json)); + + } + + [TestMethod] + public void TryJsonStringDeserialize_Test() + { + + } + } +} \ No newline at end of file diff --git a/TBFTests/TBFTests.csproj b/TBFTests/TBFTests.csproj index 26fc94f62..3be8360ef 100644 --- a/TBFTests/TBFTests.csproj +++ b/TBFTests/TBFTests.csproj @@ -99,6 +99,7 @@ +