You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.7 KiB
57 lines
1.7 KiB
using ArducopterConfigurator; |
|
using NUnit.Framework; |
|
|
|
namespace ArducopterConfiguratorTest |
|
{ |
|
public abstract class VmTestBase<T> where T : MonitorVm |
|
{ |
|
protected T _vm; |
|
protected MockComms _mockComms; |
|
protected string sampleLineOfData; // should be taken from a real APM if possible |
|
protected string getCommand; |
|
protected string setCommand; |
|
|
|
[Test] |
|
public void ActivateSendsCorrectCommand() |
|
{ |
|
_vm.Activate(); |
|
Assert.AreEqual(1, _mockComms.SentItems.Count); |
|
Assert.AreEqual(getCommand, _mockComms.SentItems[0]); |
|
} |
|
|
|
[Test] |
|
public void ReceivedDataIgnoredWhenNotActive() |
|
{ |
|
bool inpcFired = false; |
|
_vm.PropertyChanged += delegate { inpcFired = true; }; |
|
|
|
_mockComms.FireLineRecieve(sampleLineOfData); |
|
Assert.False(inpcFired); |
|
} |
|
|
|
[Test] |
|
public void ReceivedDataIgnoredAfterDeActive() |
|
{ |
|
_vm.Activate(); |
|
_mockComms.FireLineRecieve(sampleLineOfData); |
|
_vm.DeActivate(); |
|
_mockComms.FireLineRecieve(sampleLineOfData); |
|
bool inpcFired = false; |
|
_vm.PropertyChanged += delegate { inpcFired = true; }; |
|
|
|
Assert.False(inpcFired); |
|
} |
|
|
|
[Test] |
|
public void UpdateStringReceivedPopulatesValues() |
|
{ |
|
bool inpcFired = false; |
|
_vm.PropertyChanged += delegate { inpcFired = true; }; |
|
|
|
_vm.Activate(); |
|
_mockComms.FireLineRecieve(sampleLineOfData); |
|
|
|
Assert.True(inpcFired); |
|
} |
|
} |
|
} |