using DTS.DASLib.Service.StateMachine; using NSubstitute; using NUnit.Framework; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StateMachine.Tests { [TestFixture] class HardwareDiscoveryStartShould { [Test] public void State_ShouldBeHardwareDiscoveryStart() { //Arrange var sut = new HardwareDiscoveryStart(); //Act & Assert Assert.That(State.HardwareDiscoveryStart, Is.EqualTo(sut.State)); } [Test] public void StateSelector_Should_ReturnConfigure() { //Arrange var sut = new HardwareDiscoveryStart(); var status = sut.Status; status.HardwareDiscoveryParams.ProceedWhenDone = true; status.HardwareDiscoveryStatusInfo.AllDASFound = true; status.HardwareDiscoveryParams.RequireAllDASFound = true; //Act var dasState = sut.StateSelector(); //Assert Assert.That(dasState.State, Is.EqualTo(State.Configure)); //Arrange status.HardwareDiscoveryParams.ProceedWhenDone = true; status.HardwareDiscoveryStatusInfo.AllDASFound = true; status.HardwareDiscoveryParams.RequireAllDASFound = false; //Act dasState = sut.StateSelector(); //Assert Assert.That(dasState.State, Is.EqualTo(State.Configure)); //Arrange status.HardwareDiscoveryParams.ProceedWhenDone = true; status.HardwareDiscoveryStatusInfo.AllDASFound = false; status.HardwareDiscoveryParams.RequireAllDASFound = false; //Act dasState = sut.StateSelector(); //Assert Assert.That(dasState.State, Is.EqualTo(State.Configure)); } [Test] public void StateSelector_Should_ReturnDownload() { //Arrange var sut = new HardwareDiscoveryStart(); var status = sut.Status; status.HardwareDiscoveryParams.ProceedWhenDone = true; status.HardwareDiscoveryStatusInfo.AllDASFound = true; status.HardwareDiscoveryParams.RequireAllDASFound = true; status.HardwareDiscoveryParams.GoToDownload = true; //Act var dasState = sut.StateSelector(); //Assert Assert.That(dasState.State, Is.EqualTo(State.Download)); } [Test] public void StateSelector_Should_ReturnArm() { //Arrange var sut = new HardwareDiscoveryStart(); var status = sut.Status; status.HardwareDiscoveryParams.ProceedWhenDone = true; //Cannot Configure status.HardwareDiscoveryStatusInfo.AllDASFound = false; status.HardwareDiscoveryParams.RequireAllDASFound = true; //Cannot Download status.HardwareDiscoveryParams.GoToDownload = false; //Can Arm status.HardwareDiscoveryStatusInfo.SomeUnitsInArmState = true; //Act var dasState = sut.StateSelector(); // Assert Assert.That(dasState.State, Is.EqualTo(State.Arm)); } [Test] public void StateSelector_Should_ReturnHardwareDiscovery() { //Arrange var sut = new HardwareDiscoveryStart(); var status = sut.Status; status.HardwareDiscoveryParams.ProceedWhenDone = true; //Cannot Configure status.HardwareDiscoveryStatusInfo.AllDASFound = false; status.HardwareDiscoveryParams.RequireAllDASFound = true; //Cannot Download status.HardwareDiscoveryParams.GoToDownload = false; //Can Arm status.HardwareDiscoveryStatusInfo.SomeUnitsInArmState = false; //Act var dasState = sut.StateSelector(); // Assert Assert.That(dasState.State, Is.EqualTo(State.HardwareDiscovery)); } } }