using ArducopterConfigurator.PresentationModels; using NUnit.Framework; namespace ArducopterConfiguratorTest { [TestFixture] public class StableModeConfigVmTest : VmTestBase { [SetUp] public void Setup() { sampleLineOfData = "1.950,0.100,0.200,1.950,0.300,0.400,3.200,0.500,0.600,0.320,1.00"; getCommand = "B"; setCommand = "A"; _mockComms = new MockComms(); _mockComms.Connect(); _vm = new StableModeConfigVm(_mockComms); } [Test] public void UpdateStringSentIsCorrect() { _vm.PitchP = 1.0F; _vm.PitchI = 2.0F; _vm.PitchD = 3.0F; _vm.RollP = 5.0F; _vm.RollI = 6.0F; _vm.RollD = 7.0F; _vm.YawP = 8.0F; _vm.YawI = 9.0F; _vm.YawD = 10.0F; _vm.MagnetometerEnable = true; _vm.KPrate = 4.0F; _vm.UpdateCommand.Execute(null); Assert.AreEqual(1, _mockComms.SentItems.Count); //A[KP Quad Roll];[KI Quad Roll];[KP RATE ROLL]; // [KP Quad Pitch];[KI Quad Pitch];[KP RATE PITCH]; // [KP Quad Yaw];[KI Quad Yaw];[KP Rate Yaw]; // [KP Rate];[Magneto] Assert.AreEqual("A5;6;7;1;2;3;8;9;10;4;1", _mockComms.SentItems[0]); } [Test] public void UpdateStringReceivedPopulatesValuesCorrectly() { _vm.Activate(); _mockComms.FireLineRecieve(sampleLineOfData); Assert.AreEqual(1.95f, _vm.RollP); Assert.AreEqual(0.1f, _vm.RollI); Assert.AreEqual(0.2f, _vm.RollD); Assert.AreEqual(1.95f, _vm.PitchP); Assert.AreEqual(0.3f, _vm.PitchI); Assert.AreEqual(0.4f, _vm.PitchD); Assert.AreEqual(3.2f, _vm.YawP); Assert.AreEqual(0.5f, _vm.YawI); Assert.AreEqual(0.6f, _vm.YawD); Assert.AreEqual(0.32f, _vm.KPrate); Assert.AreEqual(true, _vm.MagnetometerEnable); } } }