diff --git a/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingFarmingPanel.cs b/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingFarmingPanel.cs
index a5cd00231..f9ca52b34 100644
--- a/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingFarmingPanel.cs
+++ b/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingFarmingPanel.cs
@@ -1,9 +1,11 @@
using System;
+using ClassLibraryCommon;
using MEF;
namespace NonVisuals.BindingClasses.DCSBIOSBindings
{
[Serializable]
+ [SerializeCriticalCustom]
public class DCSBIOSActionBindingFarmingPanel : DCSBIOSActionBindingBase
{
/*
diff --git a/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ55.cs b/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ55.cs
index 71b4fe1a6..ed0304139 100644
--- a/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ55.cs
+++ b/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ55.cs
@@ -1,9 +1,11 @@
using System;
+using ClassLibraryCommon;
using MEF;
namespace NonVisuals.BindingClasses.DCSBIOSBindings
{
[Serializable]
+ [SerializeCriticalCustom]
public class DCSBIOSActionBindingPZ55 : DCSBIOSActionBindingBase
{
/*
diff --git a/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ69.cs b/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ69.cs
index 2cacc5fcd..ab00b44a8 100644
--- a/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ69.cs
+++ b/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ69.cs
@@ -1,9 +1,11 @@
using System;
+using ClassLibraryCommon;
using MEF;
namespace NonVisuals.BindingClasses.DCSBIOSBindings
{
[Serializable]
+ [SerializeCriticalCustom]
public class DCSBIOSActionBindingPZ69 : DCSBIOSActionBindingBase
{
/*
diff --git a/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ70.cs b/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ70.cs
index d91f782ad..9a8dadbcb 100644
--- a/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ70.cs
+++ b/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingPZ70.cs
@@ -1,10 +1,12 @@
using System;
+using ClassLibraryCommon;
using MEF;
using NonVisuals.Panels.Saitek.Panels;
namespace NonVisuals.BindingClasses.DCSBIOSBindings
{
[Serializable]
+ [SerializeCriticalCustom]
public class DCSBIOSActionBindingPZ70 : DCSBIOSActionBindingBase
{
/*
diff --git a/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingTPM.cs b/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingTPM.cs
index a7abd4e80..a833c1ec8 100644
--- a/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingTPM.cs
+++ b/src/NonVisuals/BindingClasses/DCSBIOSBindings/DCSBIOSActionBindingTPM.cs
@@ -1,9 +1,11 @@
using System;
+using ClassLibraryCommon;
using MEF;
namespace NonVisuals.BindingClasses.DCSBIOSBindings
{
[Serializable]
+ [SerializeCriticalCustom]
public class DCSBIOSActionBindingTPM : DCSBIOSActionBindingBase
{
/*
diff --git a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingFarmingPanel.cs b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingFarmingPanel.cs
index 90b30fce5..be77f9513 100644
--- a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingFarmingPanel.cs
+++ b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingFarmingPanel.cs
@@ -1,9 +1,11 @@
using System;
+using ClassLibraryCommon;
using MEF;
namespace NonVisuals.BindingClasses.OSCommand
{
[Serializable]
+ [SerializeCriticalCustom]
public class OSCommandBindingFarmingPanel : OSCommandBindingBase
{
/*
diff --git a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ55.cs b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ55.cs
index cb33c95e8..cf264cee5 100644
--- a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ55.cs
+++ b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ55.cs
@@ -1,10 +1,12 @@
using System;
+using ClassLibraryCommon;
using MEF;
using NonVisuals.Panels.Saitek;
namespace NonVisuals.BindingClasses.OSCommand
{
[Serializable]
+ [SerializeCriticalCustom]
public class OSCommandBindingPZ55 : OSCommandBindingBase
{
/*
diff --git a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ69Emulator.cs b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ69Emulator.cs
index b9156ef72..975a0900f 100644
--- a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ69Emulator.cs
+++ b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ69Emulator.cs
@@ -1,9 +1,11 @@
using System;
+using ClassLibraryCommon;
using MEF;
namespace NonVisuals.BindingClasses.OSCommand
{
[Serializable]
+ [SerializeCriticalCustom]
public class OSCommandBindingPZ69Emulator : OSCommandBindingBase
{
/*
diff --git a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ69FullEmulator.cs b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ69FullEmulator.cs
index ccd01c727..0f32823ef 100644
--- a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ69FullEmulator.cs
+++ b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ69FullEmulator.cs
@@ -1,9 +1,11 @@
using System;
+using ClassLibraryCommon;
using MEF;
namespace NonVisuals.BindingClasses.OSCommand
{
[Serializable]
+ [SerializeCriticalCustom]
public class OSCommandBindingPZ69FullEmulator : OSCommandBindingBase
{
/*
diff --git a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ70.cs b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ70.cs
index 7ee51c078..412790743 100644
--- a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ70.cs
+++ b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingPZ70.cs
@@ -1,10 +1,12 @@
using System;
+using ClassLibraryCommon;
using MEF;
using NonVisuals.Panels.Saitek.Panels;
namespace NonVisuals.BindingClasses.OSCommand
{
[Serializable]
+ [SerializeCriticalCustom]
public class OSCommandBindingPZ70 : OSCommandBindingBase
{
/*
diff --git a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingTPM.cs b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingTPM.cs
index d7911a7ed..5242dd4cd 100644
--- a/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingTPM.cs
+++ b/src/NonVisuals/BindingClasses/OSCommand/OSCommandBindingTPM.cs
@@ -1,9 +1,11 @@
using System;
+using ClassLibraryCommon;
using MEF;
namespace NonVisuals.BindingClasses.OSCommand
{
[Serializable]
+ [SerializeCriticalCustom]
public class OSCommandBindingTPM : OSCommandBindingBase
{
/*
diff --git a/src/Tests/Serialization/Common/RepositorySerialized.cs b/src/Tests/Serialization/Common/RepositorySerialized.cs
index a822569af..4f4f5ee5a 100644
--- a/src/Tests/Serialization/Common/RepositorySerialized.cs
+++ b/src/Tests/Serialization/Common/RepositorySerialized.cs
@@ -39,6 +39,9 @@ internal string GetSerializedObjectString(Type objectType)
return File.ReadAllText(GetFile(objectType));
}
+ ///
+ /// Even if this function has 0 references, do not delete this, used in tests
+ ///
internal void SaveSerializedObjectToFile(Type objectType, string serialized)
{
string mockFolderPath = GetMockFolderPath();
diff --git a/src/Tests/Serialization/DCSBIOSActionBindingFarmingPanel_SerializeTests.cs b/src/Tests/Serialization/DCSBIOSActionBindingFarmingPanel_SerializeTests.cs
new file mode 100644
index 000000000..1821d2f98
--- /dev/null
+++ b/src/Tests/Serialization/DCSBIOSActionBindingFarmingPanel_SerializeTests.cs
@@ -0,0 +1,49 @@
+using DCSFPTests.Serialization.Common;
+using Newtonsoft.Json;
+using NonVisuals.BindingClasses.DCSBIOSBindings;
+using Xunit;
+
+namespace DCSFPTests.Serialization {
+ public class DCSBIOSActionBindingFarmingPanel_SerializeTests {
+ [Fact]
+ public static void DCSBIOSActionBindingFarmingPanel_ShouldBeSerializable() {
+ DCSBIOSActionBindingFarmingPanel s = GetObject();
+
+ string serializedObj = JsonConvert.SerializeObject(s, Formatting.Indented, JSonSettings.JsonDefaultSettings);
+ DCSBIOSActionBindingFarmingPanel d = JsonConvert.DeserializeObject(serializedObj, JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.FarmingPanelKey, d.FarmingPanelKey);
+ Assert.Equal(s.WhenTurnedOn, d.WhenTurnedOn);
+ Assert.Equal(s.Description, d.Description);
+ Assert.Equal(s.IsSequenced, d.IsSequenced);
+ DeepAssert.Equal(s.DCSBIOSInputs, d.DCSBIOSInputs);
+
+
+ RepositorySerialized repo = new();
+ //Save sample file in project (use it only once)
+ //repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
+
+ DCSBIOSActionBindingFarmingPanel deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.FarmingPanelKey, deseralizedObjFromFile.FarmingPanelKey);
+ Assert.Equal(s.WhenTurnedOn, deseralizedObjFromFile.WhenTurnedOn);
+ Assert.Equal(s.Description, deseralizedObjFromFile.Description);
+ Assert.Equal(s.IsSequenced, deseralizedObjFromFile.IsSequenced);
+ DeepAssert.Equal(s.DCSBIOSInputs, deseralizedObjFromFile.DCSBIOSInputs);
+ }
+
+ private static DCSBIOSActionBindingFarmingPanel GetObject(int instanceNbr = 1) {
+ return new()
+ {
+ FarmingPanelKey = KeyBindingFarmingPanel_SerializeTests.GetFarmingPanelMKKeysFromInstance(instanceNbr + 9),
+ WhenTurnedOn = true,
+ Description = $"dkk aqk {instanceNbr}",
+ IsSequenced = true,
+ DCSBIOSInputs = new(){
+ DCSBIOSInput_SerializeTests.GetObject(instanceNbr + 7),
+ DCSBIOSInput_SerializeTests.GetObject(instanceNbr + 8)
+ }
+ };
+ }
+ }
+}
diff --git a/src/Tests/Serialization/DCSBIOSActionBindingPZ55_SerializeTests.cs b/src/Tests/Serialization/DCSBIOSActionBindingPZ55_SerializeTests.cs
new file mode 100644
index 000000000..ef6624569
--- /dev/null
+++ b/src/Tests/Serialization/DCSBIOSActionBindingPZ55_SerializeTests.cs
@@ -0,0 +1,49 @@
+using DCSFPTests.Serialization.Common;
+using Newtonsoft.Json;
+using NonVisuals.BindingClasses.DCSBIOSBindings;
+using Xunit;
+
+namespace DCSFPTests.Serialization {
+ public class DCSBIOSActionBindingPZ55_SerializeTests {
+ [Fact]
+ public static void DCSBIOSActionBindingPZ55_ShouldBeSerializable() {
+ DCSBIOSActionBindingPZ55 s = GetObject();
+
+ string serializedObj = JsonConvert.SerializeObject(s, Formatting.Indented, JSonSettings.JsonDefaultSettings);
+ DCSBIOSActionBindingPZ55 d = JsonConvert.DeserializeObject(serializedObj, JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.SwitchPanelPZ55Key, d.SwitchPanelPZ55Key);
+ Assert.Equal(s.WhenTurnedOn, d.WhenTurnedOn);
+ Assert.Equal(s.Description, d.Description);
+ Assert.Equal(s.IsSequenced, d.IsSequenced);
+ DeepAssert.Equal(s.DCSBIOSInputs, d.DCSBIOSInputs);
+
+
+ RepositorySerialized repo = new();
+ //Save sample file in project (use it only once)
+ //repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
+
+ DCSBIOSActionBindingPZ55 deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.SwitchPanelPZ55Key, deseralizedObjFromFile.SwitchPanelPZ55Key);
+ Assert.Equal(s.WhenTurnedOn, deseralizedObjFromFile.WhenTurnedOn);
+ Assert.Equal(s.Description, deseralizedObjFromFile.Description);
+ Assert.Equal(s.IsSequenced, deseralizedObjFromFile.IsSequenced);
+ DeepAssert.Equal(s.DCSBIOSInputs, deseralizedObjFromFile.DCSBIOSInputs);
+ }
+
+ private static DCSBIOSActionBindingPZ55 GetObject(int instanceNbr = 1) {
+ return new()
+ {
+ SwitchPanelPZ55Key = KeyBindingPZ55_SerializeTests.GetSwitchPanelPZ55KeysFromInstance(instanceNbr + 4),
+ WhenTurnedOn = true,
+ Description = $"iiu kkh {instanceNbr}",
+ IsSequenced = true,
+ DCSBIOSInputs = new(){
+ DCSBIOSInput_SerializeTests.GetObject(instanceNbr + 2),
+ DCSBIOSInput_SerializeTests.GetObject(instanceNbr + 3)
+ }
+ };
+ }
+ }
+}
diff --git a/src/Tests/Serialization/DCSBIOSActionBindingPZ69_SerializeTests.cs b/src/Tests/Serialization/DCSBIOSActionBindingPZ69_SerializeTests.cs
new file mode 100644
index 000000000..9576f8a04
--- /dev/null
+++ b/src/Tests/Serialization/DCSBIOSActionBindingPZ69_SerializeTests.cs
@@ -0,0 +1,52 @@
+using DCSFPTests.Serialization.Common;
+using Newtonsoft.Json;
+using NonVisuals.BindingClasses.DCSBIOSBindings;
+using Xunit;
+
+namespace DCSFPTests.Serialization {
+ public class DCSBIOSActionBindingPZ69_SerializeTests {
+ [Fact]
+ public static void DCSBIOSActionBindingPZ69_ShouldBeSerializable() {
+ DCSBIOSActionBindingPZ69 s = GetObject();
+
+ string serializedObj = JsonConvert.SerializeObject(s, Formatting.Indented, JSonSettings.JsonDefaultSettings);
+ DCSBIOSActionBindingPZ69 d = JsonConvert.DeserializeObject(serializedObj, JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.DialPosition, d.DialPosition);
+ Assert.Equal(s.RadioPanelPZ69Knob, d.RadioPanelPZ69Knob);
+ Assert.Equal(s.WhenTurnedOn, d.WhenTurnedOn);
+ Assert.Equal(s.Description, d.Description);
+ Assert.Equal(s.IsSequenced, d.IsSequenced);
+ DeepAssert.Equal(s.DCSBIOSInputs, d.DCSBIOSInputs);
+
+
+ RepositorySerialized repo = new();
+ //Save sample file in project (use it only once)
+ //repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
+
+ DCSBIOSActionBindingPZ69 deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.DialPosition, deseralizedObjFromFile.DialPosition);
+ Assert.Equal(s.RadioPanelPZ69Knob, deseralizedObjFromFile.RadioPanelPZ69Knob);
+ Assert.Equal(s.WhenTurnedOn, deseralizedObjFromFile.WhenTurnedOn);
+ Assert.Equal(s.Description, deseralizedObjFromFile.Description);
+ Assert.Equal(s.IsSequenced, deseralizedObjFromFile.IsSequenced);
+ DeepAssert.Equal(s.DCSBIOSInputs, deseralizedObjFromFile.DCSBIOSInputs);
+ }
+
+ private static DCSBIOSActionBindingPZ69 GetObject(int instanceNbr = 1) {
+ return new()
+ {
+ DialPosition = KeyBindingPZ69DialPosition_SerializeTests.GetPZ69DialPositionFromInstance(instanceNbr+7),
+ RadioPanelPZ69Knob = KeyBindingPZ69_SerializeTests.GetRadioPanelPZ69KnobsEmulatorFromInstance(instanceNbr + 3),
+ WhenTurnedOn = true,
+ Description = $"dds ola {instanceNbr}",
+ IsSequenced = true,
+ DCSBIOSInputs = new(){
+ DCSBIOSInput_SerializeTests.GetObject(instanceNbr + 3),
+ DCSBIOSInput_SerializeTests.GetObject(instanceNbr + 4)
+ }
+ };
+ }
+ }
+}
diff --git a/src/Tests/Serialization/DCSBIOSActionBindingPZ70_SerializeTests.cs b/src/Tests/Serialization/DCSBIOSActionBindingPZ70_SerializeTests.cs
new file mode 100644
index 000000000..12280231a
--- /dev/null
+++ b/src/Tests/Serialization/DCSBIOSActionBindingPZ70_SerializeTests.cs
@@ -0,0 +1,52 @@
+using DCSFPTests.Serialization.Common;
+using Newtonsoft.Json;
+using NonVisuals.BindingClasses.DCSBIOSBindings;
+using Xunit;
+
+namespace DCSFPTests.Serialization {
+ public class DCSBIOSActionBindingPZ70_SerializeTests {
+ [Fact]
+ public static void DCSBIOSActionBindingPZ70_ShouldBeSerializable() {
+ DCSBIOSActionBindingPZ70 s = GetObject();
+
+ string serializedObj = JsonConvert.SerializeObject(s, Formatting.Indented, JSonSettings.JsonDefaultSettings);
+ DCSBIOSActionBindingPZ70 d = JsonConvert.DeserializeObject(serializedObj, JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.DialPosition, d.DialPosition);
+ Assert.Equal(s.MultiPanelPZ70Knob, d.MultiPanelPZ70Knob);
+ Assert.Equal(s.WhenTurnedOn, d.WhenTurnedOn);
+ Assert.Equal(s.Description, d.Description);
+ Assert.Equal(s.IsSequenced, d.IsSequenced);
+ DeepAssert.Equal(s.DCSBIOSInputs, d.DCSBIOSInputs);
+
+
+ RepositorySerialized repo = new();
+ //Save sample file in project (use it only once)
+ //repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
+
+ DCSBIOSActionBindingPZ70 deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.DialPosition, deseralizedObjFromFile.DialPosition);
+ Assert.Equal(s.MultiPanelPZ70Knob, deseralizedObjFromFile.MultiPanelPZ70Knob);
+ Assert.Equal(s.WhenTurnedOn, deseralizedObjFromFile.WhenTurnedOn);
+ Assert.Equal(s.Description, deseralizedObjFromFile.Description);
+ Assert.Equal(s.IsSequenced, deseralizedObjFromFile.IsSequenced);
+ DeepAssert.Equal(s.DCSBIOSInputs, deseralizedObjFromFile.DCSBIOSInputs);
+ }
+
+ private static DCSBIOSActionBindingPZ70 GetObject(int instanceNbr = 1) {
+ return new()
+ {
+ DialPosition = KeyBindingPZ70_SerializeTests.GetPZ70DialPositionFromInstance(instanceNbr + 4),
+ MultiPanelPZ70Knob = KeyBindingPZ70_SerializeTests.GetMultiPanelPZ70KnobsFromInstance(instanceNbr + 5),
+ WhenTurnedOn = true,
+ Description = $"ecs ivt {instanceNbr}",
+ IsSequenced = true,
+ DCSBIOSInputs = new(){
+ DCSBIOSInput_SerializeTests.GetObject(instanceNbr + 5),
+ DCSBIOSInput_SerializeTests.GetObject(instanceNbr + 6)
+ }
+ };
+ }
+ }
+}
diff --git a/src/Tests/Serialization/DCSBIOSActionBindingTPM_SerializeTests.cs b/src/Tests/Serialization/DCSBIOSActionBindingTPM_SerializeTests.cs
new file mode 100644
index 000000000..7f9d2aa8f
--- /dev/null
+++ b/src/Tests/Serialization/DCSBIOSActionBindingTPM_SerializeTests.cs
@@ -0,0 +1,49 @@
+using DCSFPTests.Serialization.Common;
+using Newtonsoft.Json;
+using NonVisuals.BindingClasses.DCSBIOSBindings;
+using Xunit;
+
+namespace DCSFPTests.Serialization {
+ public class DCSBIOSActionBindingTPM_SerializeTests {
+ [Fact]
+ public static void DCSBIOSActionBindingTPM_ShouldBeSerializable() {
+ DCSBIOSActionBindingTPM s = GetObject();
+
+ string serializedObj = JsonConvert.SerializeObject(s, Formatting.Indented, JSonSettings.JsonDefaultSettings);
+ DCSBIOSActionBindingTPM d = JsonConvert.DeserializeObject(serializedObj, JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.TPMSwitch, d.TPMSwitch);
+ Assert.Equal(s.WhenTurnedOn, d.WhenTurnedOn);
+ Assert.Equal(s.Description, d.Description);
+ Assert.Equal(s.IsSequenced, d.IsSequenced);
+ DeepAssert.Equal(s.DCSBIOSInputs, d.DCSBIOSInputs);
+
+
+ RepositorySerialized repo = new();
+ //Save sample file in project (use it only once)
+ //repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
+
+ DCSBIOSActionBindingTPM deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.TPMSwitch, deseralizedObjFromFile.TPMSwitch);
+ Assert.Equal(s.WhenTurnedOn, deseralizedObjFromFile.WhenTurnedOn);
+ Assert.Equal(s.Description, deseralizedObjFromFile.Description);
+ Assert.Equal(s.IsSequenced, deseralizedObjFromFile.IsSequenced);
+ DeepAssert.Equal(s.DCSBIOSInputs, deseralizedObjFromFile.DCSBIOSInputs);
+ }
+
+ private static DCSBIOSActionBindingTPM GetObject(int instanceNbr = 1) {
+ return new()
+ {
+ TPMSwitch = KeyBindingTPM_SerializeTests.GetTPMPanelSwitchesFromInstance(instanceNbr + 7),
+ WhenTurnedOn = true,
+ Description = $"yea tal {instanceNbr}",
+ IsSequenced = true,
+ DCSBIOSInputs = new(){
+ DCSBIOSInput_SerializeTests.GetObject(instanceNbr + 9),
+ DCSBIOSInput_SerializeTests.GetObject(instanceNbr + 10)
+ }
+ };
+ }
+ }
+}
diff --git a/src/Tests/Serialization/KeyBindingFarmingPanel_SerializeTests.cs b/src/Tests/Serialization/KeyBindingFarmingPanel_SerializeTests.cs
index 803fb8792..752dea1e0 100644
--- a/src/Tests/Serialization/KeyBindingFarmingPanel_SerializeTests.cs
+++ b/src/Tests/Serialization/KeyBindingFarmingPanel_SerializeTests.cs
@@ -35,7 +35,7 @@ public static void KeyBindingFarmingPanel_ShouldBeSerializable() {
Assert.Equal(s.OSKeyPress.Description, deseralizedObjFromFile.OSKeyPress.Description);
}
- private static FarmingPanelMKKeys GetFarmingPanelMKKeysFromInstance(int instanceNbr) {
+ public static FarmingPanelMKKeys GetFarmingPanelMKKeysFromInstance(int instanceNbr) {
return instanceNbr switch
{
1 => FarmingPanelMKKeys.BUTTON_1,
diff --git a/src/Tests/Serialization/KeyBindingPZ55_SerializeTests.cs b/src/Tests/Serialization/KeyBindingPZ55_SerializeTests.cs
index 80b798510..03f7b9f38 100644
--- a/src/Tests/Serialization/KeyBindingPZ55_SerializeTests.cs
+++ b/src/Tests/Serialization/KeyBindingPZ55_SerializeTests.cs
@@ -35,7 +35,7 @@ public static void KeyBindingPZ55_ShouldBeSerializable() {
Assert.Equal(s.OSKeyPress.Description, deseralizedObjFromFile.OSKeyPress.Description);
}
- private static SwitchPanelPZ55Keys GetSwitchPanelPZ55KeysFromInstance(int instanceNbr) {
+ public static SwitchPanelPZ55Keys GetSwitchPanelPZ55KeysFromInstance(int instanceNbr) {
return instanceNbr switch
{
1 => SwitchPanelPZ55Keys.SWITCHKEY_MASTER_BAT,
diff --git a/src/Tests/Serialization/KeyBindingPZ70_SerializeTests.cs b/src/Tests/Serialization/KeyBindingPZ70_SerializeTests.cs
index 8da0b1ede..f33e34e9b 100644
--- a/src/Tests/Serialization/KeyBindingPZ70_SerializeTests.cs
+++ b/src/Tests/Serialization/KeyBindingPZ70_SerializeTests.cs
@@ -51,7 +51,7 @@ public static PZ70DialPosition GetPZ70DialPositionFromInstance(int instanceNbr)
};
}
- private static MultiPanelPZ70Knobs GetMultiPanelPZ70KnobsFromInstance(int instanceNbr) {
+ public static MultiPanelPZ70Knobs GetMultiPanelPZ70KnobsFromInstance(int instanceNbr) {
return instanceNbr switch
{
1 => MultiPanelPZ70Knobs.KNOB_ALT,
diff --git a/src/Tests/Serialization/KeyBindingTPM_SerializeTests.cs b/src/Tests/Serialization/KeyBindingTPM_SerializeTests.cs
index 2a2d074d8..946f3c917 100644
--- a/src/Tests/Serialization/KeyBindingTPM_SerializeTests.cs
+++ b/src/Tests/Serialization/KeyBindingTPM_SerializeTests.cs
@@ -34,7 +34,7 @@ public static void KeyBindingTPM_ShouldBeSerializable() {
Assert.Equal(s.OSKeyPress.Description, deseralizedObjFromFile.OSKeyPress.Description);
}
- private static TPMPanelSwitches GetTPMPanelSwitchesFromInstance(int instanceNbr) {
+ public static TPMPanelSwitches GetTPMPanelSwitchesFromInstance(int instanceNbr) {
return instanceNbr switch
{
1 => TPMPanelSwitches.G1,
diff --git a/src/Tests/Serialization/OSCommandBindingFarmingPanel_SerializeTests.cs b/src/Tests/Serialization/OSCommandBindingFarmingPanel_SerializeTests.cs
new file mode 100644
index 000000000..00846f2aa
--- /dev/null
+++ b/src/Tests/Serialization/OSCommandBindingFarmingPanel_SerializeTests.cs
@@ -0,0 +1,43 @@
+using DCSFPTests.Serialization.Common;
+using Newtonsoft.Json;
+using NonVisuals.BindingClasses.OSCommand;
+using Xunit;
+
+namespace DCSFPTests.Serialization {
+ public class OSCommandBindingFarmingPanel_SerializeTests {
+ [Fact]
+ public static void OSCommandBindingFarmingPanel_ShouldBeSerializable() {
+ OSCommandBindingFarmingPanel s = GetObject();
+
+ string serializedObj = JsonConvert.SerializeObject(s, Formatting.Indented, JSonSettings.JsonDefaultSettings);
+ OSCommandBindingFarmingPanel d = JsonConvert.DeserializeObject(serializedObj, JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.FarmingPanelKey, d.FarmingPanelKey);
+ Assert.Equal(s.WhenTurnedOn, d.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, d.OSCommandObject);
+
+ //Ignored :
+ //HasSequence
+ //IsSequenced
+
+ RepositorySerialized repo = new();
+ //Save sample file in project (use it only once)
+ //repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
+
+ OSCommandBindingFarmingPanel deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.FarmingPanelKey, deseralizedObjFromFile.FarmingPanelKey);
+ Assert.Equal(s.WhenTurnedOn, deseralizedObjFromFile.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, deseralizedObjFromFile.OSCommandObject);
+ }
+
+ private static OSCommandBindingFarmingPanel GetObject(int instanceNbr = 1) {
+ return new()
+ {
+ FarmingPanelKey = KeyBindingFarmingPanel_SerializeTests.GetFarmingPanelMKKeysFromInstance(instanceNbr+7),
+ WhenTurnedOn = true,
+ OSCommandObject = OSCommand_SerializeTests.GetObject(instanceNbr+2)
+ };
+ }
+ }
+}
diff --git a/src/Tests/Serialization/OSCommandBindingPZ55_SerializeTests.cs b/src/Tests/Serialization/OSCommandBindingPZ55_SerializeTests.cs
new file mode 100644
index 000000000..e3877b70b
--- /dev/null
+++ b/src/Tests/Serialization/OSCommandBindingPZ55_SerializeTests.cs
@@ -0,0 +1,43 @@
+using DCSFPTests.Serialization.Common;
+using Newtonsoft.Json;
+using NonVisuals.BindingClasses.OSCommand;
+using Xunit;
+
+namespace DCSFPTests.Serialization {
+ public class OSCommandBindingPZ55_SerializeTests {
+ [Fact]
+ public static void OSCommandBindingPZ55_ShouldBeSerializable() {
+ OSCommandBindingPZ55 s = GetObject();
+
+ string serializedObj = JsonConvert.SerializeObject(s, Formatting.Indented, JSonSettings.JsonDefaultSettings);
+ OSCommandBindingPZ55 d = JsonConvert.DeserializeObject(serializedObj, JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.SwitchPanelPZ55Key, d.SwitchPanelPZ55Key);
+ Assert.Equal(s.WhenTurnedOn, d.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, d.OSCommandObject);
+
+ //Ignored :
+ //HasSequence
+ //IsSequenced
+
+ RepositorySerialized repo = new();
+ //Save sample file in project (use it only once)
+ //repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
+
+ OSCommandBindingPZ55 deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.SwitchPanelPZ55Key, deseralizedObjFromFile.SwitchPanelPZ55Key);
+ Assert.Equal(s.WhenTurnedOn, deseralizedObjFromFile.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, deseralizedObjFromFile.OSCommandObject);
+ }
+
+ private static OSCommandBindingPZ55 GetObject(int instanceNbr = 1) {
+ return new()
+ {
+ SwitchPanelPZ55Key = KeyBindingPZ55_SerializeTests.GetSwitchPanelPZ55KeysFromInstance(instanceNbr+4),
+ WhenTurnedOn = true,
+ OSCommandObject = OSCommand_SerializeTests.GetObject(instanceNbr+5)
+ };
+ }
+ }
+}
diff --git a/src/Tests/Serialization/OSCommandBindingPZ69Emulator_SerializeTests.cs b/src/Tests/Serialization/OSCommandBindingPZ69Emulator_SerializeTests.cs
new file mode 100644
index 000000000..509cba982
--- /dev/null
+++ b/src/Tests/Serialization/OSCommandBindingPZ69Emulator_SerializeTests.cs
@@ -0,0 +1,43 @@
+using DCSFPTests.Serialization.Common;
+using Newtonsoft.Json;
+using NonVisuals.BindingClasses.OSCommand;
+using Xunit;
+
+namespace DCSFPTests.Serialization {
+ public class OSCommandBindingPZ69Emulator_SerializeTests {
+ [Fact]
+ public static void OSCommandBindingPZ69Emulator_ShouldBeSerializable() {
+ OSCommandBindingPZ69Emulator s = GetObject();
+
+ string serializedObj = JsonConvert.SerializeObject(s, Formatting.Indented, JSonSettings.JsonDefaultSettings);
+ OSCommandBindingPZ69Emulator d = JsonConvert.DeserializeObject(serializedObj, JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.RadioPanelPZ69Key, d.RadioPanelPZ69Key);
+ Assert.Equal(s.WhenTurnedOn, d.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, d.OSCommandObject);
+
+ //Ignored :
+ //HasSequence
+ //IsSequenced
+
+ RepositorySerialized repo = new();
+ //Save sample file in project (use it only once)
+ //repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
+
+ OSCommandBindingPZ69Emulator deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.RadioPanelPZ69Key, deseralizedObjFromFile.RadioPanelPZ69Key);
+ Assert.Equal(s.WhenTurnedOn, deseralizedObjFromFile.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, deseralizedObjFromFile.OSCommandObject);
+ }
+
+ private static OSCommandBindingPZ69Emulator GetObject(int instanceNbr = 1) {
+ return new()
+ {
+ RadioPanelPZ69Key = KeyBindingPZ69_SerializeTests.GetRadioPanelPZ69KnobsEmulatorFromInstance(instanceNbr+2),
+ WhenTurnedOn = true,
+ OSCommandObject = OSCommand_SerializeTests.GetObject(instanceNbr+1)
+ };
+ }
+ }
+}
diff --git a/src/Tests/Serialization/OSCommandBindingPZ69FullEmulator_SerializeTests.cs b/src/Tests/Serialization/OSCommandBindingPZ69FullEmulator_SerializeTests.cs
new file mode 100644
index 000000000..f75fd8385
--- /dev/null
+++ b/src/Tests/Serialization/OSCommandBindingPZ69FullEmulator_SerializeTests.cs
@@ -0,0 +1,46 @@
+using DCSFPTests.Serialization.Common;
+using Newtonsoft.Json;
+using NonVisuals.BindingClasses.OSCommand;
+using Xunit;
+
+namespace DCSFPTests.Serialization {
+ public class OSCommandBindingPZ69FullEmulator_SerializeTests {
+ [Fact]
+ public static void OSCommandBindingPZ69FullEmulator_ShouldBeSerializable() {
+ OSCommandBindingPZ69FullEmulator s = GetObject();
+
+ string serializedObj = JsonConvert.SerializeObject(s, Formatting.Indented, JSonSettings.JsonDefaultSettings);
+ OSCommandBindingPZ69FullEmulator d = JsonConvert.DeserializeObject(serializedObj, JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.DialPosition, d.DialPosition);
+ Assert.Equal(s.RadioPanelPZ69Key, d.RadioPanelPZ69Key);
+ Assert.Equal(s.WhenTurnedOn, d.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, d.OSCommandObject);
+
+ //Ignored :
+ //HasSequence
+ //IsSequenced
+
+ RepositorySerialized repo = new();
+ //Save sample file in project (use it only once)
+ //repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
+
+ OSCommandBindingPZ69FullEmulator deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.DialPosition, deseralizedObjFromFile.DialPosition);
+ Assert.Equal(s.RadioPanelPZ69Key, deseralizedObjFromFile.RadioPanelPZ69Key);
+ Assert.Equal(s.WhenTurnedOn, deseralizedObjFromFile.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, deseralizedObjFromFile.OSCommandObject);
+ }
+
+ private static OSCommandBindingPZ69FullEmulator GetObject(int instanceNbr = 1) {
+ return new()
+ {
+ DialPosition = KeyBindingPZ69DialPosition_SerializeTests.GetPZ69DialPositionFromInstance(instanceNbr+5),
+ RadioPanelPZ69Key = KeyBindingPZ69_SerializeTests.GetRadioPanelPZ69KnobsEmulatorFromInstance(instanceNbr+6),
+ WhenTurnedOn = true,
+ OSCommandObject = OSCommand_SerializeTests.GetObject(instanceNbr+7)
+ };
+ }
+ }
+}
diff --git a/src/Tests/Serialization/OSCommandBindingPZ70_SerializeTests.cs b/src/Tests/Serialization/OSCommandBindingPZ70_SerializeTests.cs
new file mode 100644
index 000000000..ad3ae80e5
--- /dev/null
+++ b/src/Tests/Serialization/OSCommandBindingPZ70_SerializeTests.cs
@@ -0,0 +1,47 @@
+using DCSFPTests.Serialization.Common;
+using Newtonsoft.Json;
+using NonVisuals.BindingClasses.OSCommand;
+using Xunit;
+
+
+namespace DCSFPTests.Serialization {
+ public class OSCommandBindingPZ70_SerializeTests {
+ [Fact]
+ public static void OSCommandBindingPZ70_ShouldBeSerializable() {
+ OSCommandBindingPZ70 s = GetObject();
+
+ string serializedObj = JsonConvert.SerializeObject(s, Formatting.Indented, JSonSettings.JsonDefaultSettings);
+ OSCommandBindingPZ70 d = JsonConvert.DeserializeObject(serializedObj, JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.DialPosition, d.DialPosition);
+ Assert.Equal(s.MultiPanelPZ70Knob, d.MultiPanelPZ70Knob);
+ Assert.Equal(s.WhenTurnedOn, d.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, d.OSCommandObject);
+
+ //Ignored :
+ //HasSequence
+ //IsSequenced
+
+ RepositorySerialized repo = new();
+ //Save sample file in project (use it only once)
+ //repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
+
+ OSCommandBindingPZ70 deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.DialPosition, deseralizedObjFromFile.DialPosition);
+ Assert.Equal(s.MultiPanelPZ70Knob, d.MultiPanelPZ70Knob);
+ Assert.Equal(s.WhenTurnedOn, deseralizedObjFromFile.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, deseralizedObjFromFile.OSCommandObject);
+ }
+
+ private static OSCommandBindingPZ70 GetObject(int instanceNbr = 1) {
+ return new()
+ {
+ DialPosition = KeyBindingPZ70_SerializeTests.GetPZ70DialPositionFromInstance(instanceNbr + 3),
+ MultiPanelPZ70Knob = KeyBindingPZ70_SerializeTests.GetMultiPanelPZ70KnobsFromInstance(instanceNbr + 2),
+ WhenTurnedOn = true,
+ OSCommandObject = OSCommand_SerializeTests.GetObject(instanceNbr + 4)
+ };
+ }
+ }
+}
diff --git a/src/Tests/Serialization/OSCommandBindingTPM_SerializeTests.cs b/src/Tests/Serialization/OSCommandBindingTPM_SerializeTests.cs
new file mode 100644
index 000000000..f45ff0d67
--- /dev/null
+++ b/src/Tests/Serialization/OSCommandBindingTPM_SerializeTests.cs
@@ -0,0 +1,44 @@
+using DCSFPTests.Serialization.Common;
+using Newtonsoft.Json;
+using NonVisuals.BindingClasses.OSCommand;
+using Xunit;
+
+
+namespace DCSFPTests.Serialization {
+ public class OSCommandBindingTPM_SerializeTests {
+ [Fact]
+ public static void OSCommandBindingTPM_ShouldBeSerializable() {
+ OSCommandBindingTPM s = GetObject();
+
+ string serializedObj = JsonConvert.SerializeObject(s, Formatting.Indented, JSonSettings.JsonDefaultSettings);
+ OSCommandBindingTPM d = JsonConvert.DeserializeObject(serializedObj, JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.TPMSwitch, d.TPMSwitch);
+ Assert.Equal(s.WhenTurnedOn, d.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, d.OSCommandObject);
+
+ //Ignored :
+ //HasSequence
+ //IsSequenced
+
+ RepositorySerialized repo = new();
+ //Save sample file in project (use it only once)
+ //repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
+
+ OSCommandBindingTPM deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+
+ Assert.Equal(s.TPMSwitch, deseralizedObjFromFile.TPMSwitch);
+ Assert.Equal(s.WhenTurnedOn, deseralizedObjFromFile.WhenTurnedOn);
+ DeepAssert.Equal(s.OSCommandObject, deseralizedObjFromFile.OSCommandObject);
+ }
+
+ private static OSCommandBindingTPM GetObject(int instanceNbr = 1) {
+ return new()
+ {
+ TPMSwitch = KeyBindingTPM_SerializeTests.GetTPMPanelSwitchesFromInstance(instanceNbr + 6),
+ WhenTurnedOn = true,
+ OSCommandObject = OSCommand_SerializeTests.GetObject(instanceNbr + 2)
+ };
+ }
+ }
+}
diff --git a/src/Tests/Serialization/Resources/DCSBIOSActionBindingFarmingPanel.json b/src/Tests/Serialization/Resources/DCSBIOSActionBindingFarmingPanel.json
new file mode 100644
index 000000000..a43c2dbd8
--- /dev/null
+++ b/src/Tests/Serialization/Resources/DCSBIOSActionBindingFarmingPanel.json
@@ -0,0 +1,127 @@
+{
+ "$type": "NonVisuals.BindingClasses.DCSBIOSBindings.DCSBIOSActionBindingFarmingPanel, NonVisuals",
+ "FarmingPanelKey": 9,
+ "WhenTurnedOn": true,
+ "Description": "dkk aqk 1",
+ "DCSBIOSInputs": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS",
+ "SelectedDCSBIOSInterface": {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ "ControlId": "CtrlId 7418",
+ "Delay": 1,
+ "ControlDescription": "ikf xsd 8",
+ "ControlType": "xmd rty",
+ "DCSBIOSInputInterfaces": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9522",
+ "Description": "urt vdf 2",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 6,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ }
+ ]
+ }
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS",
+ "SelectedDCSBIOSInterface": {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ "ControlId": "CtrlId 7419",
+ "Delay": 1,
+ "ControlDescription": "ikf xsd 9",
+ "ControlType": "xmd rty",
+ "DCSBIOSInputInterfaces": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9522",
+ "Description": "urt vdf 2",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 6,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "WhenOnTurnedOn": true,
+ "IsSequenced": true
+}
\ No newline at end of file
diff --git a/src/Tests/Serialization/Resources/DCSBIOSActionBindingPZ55.json b/src/Tests/Serialization/Resources/DCSBIOSActionBindingPZ55.json
new file mode 100644
index 000000000..f88bf4212
--- /dev/null
+++ b/src/Tests/Serialization/Resources/DCSBIOSActionBindingPZ55.json
@@ -0,0 +1,127 @@
+{
+ "$type": "NonVisuals.BindingClasses.DCSBIOSBindings.DCSBIOSActionBindingPZ55, NonVisuals",
+ "SwitchPanelPZ55Key": 16,
+ "WhenTurnedOn": true,
+ "Description": "iiu kkh 1",
+ "DCSBIOSInputs": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS",
+ "SelectedDCSBIOSInterface": {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ "ControlId": "CtrlId 7413",
+ "Delay": 1,
+ "ControlDescription": "ikf xsd 3",
+ "ControlType": "xmd rty",
+ "DCSBIOSInputInterfaces": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9522",
+ "Description": "urt vdf 2",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 6,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ }
+ ]
+ }
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS",
+ "SelectedDCSBIOSInterface": {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ "ControlId": "CtrlId 7414",
+ "Delay": 1,
+ "ControlDescription": "ikf xsd 4",
+ "ControlType": "xmd rty",
+ "DCSBIOSInputInterfaces": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9522",
+ "Description": "urt vdf 2",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 6,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "WhenOnTurnedOn": true,
+ "IsSequenced": true
+}
\ No newline at end of file
diff --git a/src/Tests/Serialization/Resources/DCSBIOSActionBindingPZ69.json b/src/Tests/Serialization/Resources/DCSBIOSActionBindingPZ69.json
new file mode 100644
index 000000000..827cf74e9
--- /dev/null
+++ b/src/Tests/Serialization/Resources/DCSBIOSActionBindingPZ69.json
@@ -0,0 +1,128 @@
+{
+ "$type": "NonVisuals.BindingClasses.DCSBIOSBindings.DCSBIOSActionBindingPZ69, NonVisuals",
+ "DialPosition": 4096,
+ "RadioPanelPZ69Knob": 8,
+ "WhenTurnedOn": true,
+ "Description": "dds ola 1",
+ "DCSBIOSInputs": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS",
+ "SelectedDCSBIOSInterface": {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ "ControlId": "CtrlId 7414",
+ "Delay": 1,
+ "ControlDescription": "ikf xsd 4",
+ "ControlType": "xmd rty",
+ "DCSBIOSInputInterfaces": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9522",
+ "Description": "urt vdf 2",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 6,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ }
+ ]
+ }
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS",
+ "SelectedDCSBIOSInterface": {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ "ControlId": "CtrlId 7415",
+ "Delay": 1,
+ "ControlDescription": "ikf xsd 5",
+ "ControlType": "xmd rty",
+ "DCSBIOSInputInterfaces": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9522",
+ "Description": "urt vdf 2",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 6,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "WhenOnTurnedOn": true,
+ "IsSequenced": true
+}
\ No newline at end of file
diff --git a/src/Tests/Serialization/Resources/DCSBIOSActionBindingPZ70.json b/src/Tests/Serialization/Resources/DCSBIOSActionBindingPZ70.json
new file mode 100644
index 000000000..9066318d5
--- /dev/null
+++ b/src/Tests/Serialization/Resources/DCSBIOSActionBindingPZ70.json
@@ -0,0 +1,128 @@
+{
+ "$type": "NonVisuals.BindingClasses.DCSBIOSBindings.DCSBIOSActionBindingPZ70, NonVisuals",
+ "DialPosition": 16,
+ "MultiPanelPZ70Knob": 32,
+ "WhenTurnedOn": true,
+ "Description": "ecs ivt 1",
+ "DCSBIOSInputs": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS",
+ "SelectedDCSBIOSInterface": {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ "ControlId": "CtrlId 7416",
+ "Delay": 1,
+ "ControlDescription": "ikf xsd 6",
+ "ControlType": "xmd rty",
+ "DCSBIOSInputInterfaces": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9522",
+ "Description": "urt vdf 2",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 6,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ }
+ ]
+ }
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS",
+ "SelectedDCSBIOSInterface": {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ "ControlId": "CtrlId 7417",
+ "Delay": 1,
+ "ControlDescription": "ikf xsd 7",
+ "ControlType": "xmd rty",
+ "DCSBIOSInputInterfaces": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9522",
+ "Description": "urt vdf 2",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 6,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "WhenOnTurnedOn": true,
+ "IsSequenced": true
+}
\ No newline at end of file
diff --git a/src/Tests/Serialization/Resources/DCSBIOSActionBindingTPM.json b/src/Tests/Serialization/Resources/DCSBIOSActionBindingTPM.json
new file mode 100644
index 000000000..2914eab56
--- /dev/null
+++ b/src/Tests/Serialization/Resources/DCSBIOSActionBindingTPM.json
@@ -0,0 +1,127 @@
+{
+ "$type": "NonVisuals.BindingClasses.DCSBIOSBindings.DCSBIOSActionBindingTPM, NonVisuals",
+ "TPMSwitch": 128,
+ "WhenTurnedOn": true,
+ "Description": "yea tal 1",
+ "DCSBIOSInputs": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS",
+ "SelectedDCSBIOSInterface": {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ "ControlId": "CtrlId 74110",
+ "Delay": 1,
+ "ControlDescription": "ikf xsd 10",
+ "ControlType": "xmd rty",
+ "DCSBIOSInputInterfaces": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9522",
+ "Description": "urt vdf 2",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 6,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ }
+ ]
+ }
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInput, DCS-BIOS",
+ "SelectedDCSBIOSInterface": {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ "ControlId": "CtrlId 74111",
+ "Delay": 1,
+ "ControlDescription": "ikf xsd 11",
+ "ControlType": "xmd rty",
+ "DCSBIOSInputInterfaces": {
+ "$type": "System.Collections.Generic.List`1[[DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS]], System.Private.CoreLib",
+ "$values": [
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9521",
+ "Description": "urt vdf 1",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 5,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ },
+ {
+ "$type": "DCS_BIOS.Serialized.DCSBIOSInputInterface, DCS-BIOS",
+ "Delay": 1,
+ "ControlId": "CtrlId 9522",
+ "Description": "urt vdf 2",
+ "Interface": 4,
+ "MaxValue": 2,
+ "SuggestedStep": 3,
+ "SpecifiedActionArgument": "dov csd",
+ "SpecifiedSetStateArgument": 4,
+ "SpecifiedVariableStepArgument": 6,
+ "SpecifiedFixedStepArgument": 0,
+ "SpecifiedSetStringArgument": "sdd vbn",
+ "SelectedArgumentValue": "sdd vbn"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "WhenOnTurnedOn": true,
+ "IsSequenced": true
+}
\ No newline at end of file
diff --git a/src/Tests/Serialization/Resources/OSCommandBindingFarmingPanel.json b/src/Tests/Serialization/Resources/OSCommandBindingFarmingPanel.json
new file mode 100644
index 000000000..38567f960
--- /dev/null
+++ b/src/Tests/Serialization/Resources/OSCommandBindingFarmingPanel.json
@@ -0,0 +1,12 @@
+{
+ "$type": "NonVisuals.BindingClasses.OSCommand.OSCommandBindingFarmingPanel, NonVisuals",
+ "FarmingPanelKey": 7,
+ "WhenTurnedOn": true,
+ "OSCommandObject": {
+ "$type": "NonVisuals.OSCommand, NonVisuals",
+ "Command": "ggt ooi 3",
+ "Arguments": "bvr opm 3",
+ "Name": "hrv kfp 3",
+ "IsEmpty": false
+ }
+}
\ No newline at end of file
diff --git a/src/Tests/Serialization/Resources/OSCommandBindingPZ55.json b/src/Tests/Serialization/Resources/OSCommandBindingPZ55.json
new file mode 100644
index 000000000..70c58554d
--- /dev/null
+++ b/src/Tests/Serialization/Resources/OSCommandBindingPZ55.json
@@ -0,0 +1,12 @@
+{
+ "$type": "NonVisuals.BindingClasses.OSCommand.OSCommandBindingPZ55, NonVisuals",
+ "SwitchPanelPZ55Key": 16,
+ "WhenTurnedOn": true,
+ "OSCommandObject": {
+ "$type": "NonVisuals.OSCommand, NonVisuals",
+ "Command": "ggt ooi 6",
+ "Arguments": "bvr opm 6",
+ "Name": "hrv kfp 6",
+ "IsEmpty": false
+ }
+}
\ No newline at end of file
diff --git a/src/Tests/Serialization/Resources/OSCommandBindingPZ69Emulator.json b/src/Tests/Serialization/Resources/OSCommandBindingPZ69Emulator.json
new file mode 100644
index 000000000..f935f07c0
--- /dev/null
+++ b/src/Tests/Serialization/Resources/OSCommandBindingPZ69Emulator.json
@@ -0,0 +1,12 @@
+{
+ "$type": "NonVisuals.BindingClasses.OSCommand.OSCommandBindingPZ69Emulator, NonVisuals",
+ "RadioPanelPZ69Key": 4,
+ "WhenTurnedOn": true,
+ "OSCommandObject": {
+ "$type": "NonVisuals.OSCommand, NonVisuals",
+ "Command": "ggt ooi 2",
+ "Arguments": "bvr opm 2",
+ "Name": "hrv kfp 2",
+ "IsEmpty": false
+ }
+}
\ No newline at end of file
diff --git a/src/Tests/Serialization/Resources/OSCommandBindingPZ69FullEmulator.json b/src/Tests/Serialization/Resources/OSCommandBindingPZ69FullEmulator.json
new file mode 100644
index 000000000..e78a26c6c
--- /dev/null
+++ b/src/Tests/Serialization/Resources/OSCommandBindingPZ69FullEmulator.json
@@ -0,0 +1,13 @@
+{
+ "$type": "NonVisuals.BindingClasses.OSCommand.OSCommandBindingPZ69FullEmulator, NonVisuals",
+ "DialPosition": 32,
+ "RadioPanelPZ69Key": 64,
+ "WhenTurnedOn": true,
+ "OSCommandObject": {
+ "$type": "NonVisuals.OSCommand, NonVisuals",
+ "Command": "ggt ooi 8",
+ "Arguments": "bvr opm 8",
+ "Name": "hrv kfp 8",
+ "IsEmpty": false
+ }
+}
\ No newline at end of file
diff --git a/src/Tests/Serialization/Resources/OSCommandBindingPZ70.json b/src/Tests/Serialization/Resources/OSCommandBindingPZ70.json
new file mode 100644
index 000000000..f3f7e25ff
--- /dev/null
+++ b/src/Tests/Serialization/Resources/OSCommandBindingPZ70.json
@@ -0,0 +1,13 @@
+{
+ "$type": "NonVisuals.BindingClasses.OSCommand.OSCommandBindingPZ70, NonVisuals",
+ "DialPosition": 8,
+ "MultiPanelPZ70Knob": 4,
+ "WhenTurnedOn": true,
+ "OSCommandObject": {
+ "$type": "NonVisuals.OSCommand, NonVisuals",
+ "Command": "ggt ooi 5",
+ "Arguments": "bvr opm 5",
+ "Name": "hrv kfp 5",
+ "IsEmpty": false
+ }
+}
\ No newline at end of file
diff --git a/src/Tests/Serialization/Resources/OSCommandBindingTPM.json b/src/Tests/Serialization/Resources/OSCommandBindingTPM.json
new file mode 100644
index 000000000..c6bc68411
--- /dev/null
+++ b/src/Tests/Serialization/Resources/OSCommandBindingTPM.json
@@ -0,0 +1,12 @@
+{
+ "$type": "NonVisuals.BindingClasses.OSCommand.OSCommandBindingTPM, NonVisuals",
+ "TPMSwitch": 64,
+ "WhenTurnedOn": true,
+ "OSCommandObject": {
+ "$type": "NonVisuals.OSCommand, NonVisuals",
+ "Command": "ggt ooi 3",
+ "Arguments": "bvr opm 3",
+ "Name": "hrv kfp 3",
+ "IsEmpty": false
+ }
+}
\ No newline at end of file
diff --git a/src/Tests/Serialization/StreamDeckPushRotary_SerializeTests.cs b/src/Tests/Serialization/StreamDeckPushRotary_SerializeTests.cs
index 4a3cdac95..cb0bfb355 100644
--- a/src/Tests/Serialization/StreamDeckPushRotary_SerializeTests.cs
+++ b/src/Tests/Serialization/StreamDeckPushRotary_SerializeTests.cs
@@ -30,6 +30,7 @@ public static void StreamDeckPushRotary_ShouldBeSerializable() {
//repo.SaveSerializedObjectToFile(s.GetType(), serializedObj);
StreamDeckPushRotary deseralizedObjFromFile = JsonConvert.DeserializeObject(repo.GetSerializedObjectString(s.GetType()), JSonSettings.JsonDefaultSettings);
+ Assert.Equal(s.StreamDeckPushRotaryName, deseralizedObjFromFile.StreamDeckPushRotaryName);
}
public static EnumStreamDeckPushRotaryNames GetStreamDeckPushRotaryNameFromInstance(int instanceNbr) {