CliRunner - Added test and refactor

This commit is contained in:
Michal Buzik 2025-09-19 12:02:16 +02:00
parent 7a8bef501a
commit d838c78a8a
4 changed files with 48 additions and 6 deletions

View File

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

View File

@ -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<T>(string json, out T runAndCaptureJsonAsync) where T : new()
{
if (json != null)
{
try
{
return JsonConvert.DeserializeObject<T>(json);
runAndCaptureJsonAsync = JsonConvert.DeserializeObject<T>(json);
return true;
}
catch (Exception ex)
{
log.Debug(ex.Message);
return TryConvert<T>(json);
runAndCaptureJsonAsync = TryConvert<T>(json);
return true;
}
}
return default;
runAndCaptureJsonAsync = default;
return false;
}
private static T TryConvert<T>(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('}');

View File

@ -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()
{
}
}
}

View File

@ -99,6 +99,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Rig\Network\Camera\KeyenceIV3G120\CameraTest.cs" />
<Compile Include="Rig\Network\Camera\RoiForFixedStartKeyence\RoiTest.cs" />
<Compile Include="Rig\RegisterReaders\PoseidonCmdStartStop\CliRunnerTest.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />