public void TestHandleCommandForServerDownRequest() { // Mocks Mock<ILightsDeviceController> mockLightsDeviceController = this.mockFactory.CreateMock<ILightsDeviceController>(); mockLightsDeviceController.Expects.One.Method(x => x.Start()); mockLightsDeviceController.Expects.One.Method(x => x.Stop()); mockLightsDeviceController.IgnoreUnexpectedInvocations = true; // One for HandleCommand; one for Stop mockLightsDeviceController.Expects.Exactly(2).Method(x => x.SendCommand(null)).WithAnyArguments().WillReturn(LightsDeviceResult.Ack); // Run StatusRequest request = new StatusRequest(false); LightsManager lightsManager = null; try { lightsManager = new LightsManager(mockLightsDeviceController.MockObject, UsbProtocolType.DasBlinkenlichten); lightsManager.Start(); Assert.That(lightsManager.Running, NUnit.Framework.Is.True); lightsManager.HandleCommand(request, EventArgs.Empty); lightsManager.Stop(); Assert.That(lightsManager.Running, NUnit.Framework.Is.False); } finally { if (lightsManager != null) { lightsManager.Dispose(); } } this.mockFactory.VerifyAllExpectationsHaveBeenMet(); }
public void TestHandleCommandForAllLightsDeviceResults([Values(LightsDeviceResult.Ack, LightsDeviceResult.Nak, LightsDeviceResult.NoResponse, LightsDeviceResult.NotConnected, LightsDeviceResult.NotOpen)] LightsDeviceResult result) { this.mockFactory.ClearExpectations(); // Mocks Mock<ILightsDeviceController> mockLightsDeviceController = this.mockFactory.CreateMock<ILightsDeviceController>(); mockLightsDeviceController.Expects.One.Method(x => x.SendCommand(null)).WithAnyArguments().WillReturn(result); // Any request that steps into the send command logic is sufficient AttentionRequest request = new AttentionRequest(true); // Run LightsManager lightsManager = null; try { lightsManager = new LightsManager(mockLightsDeviceController.MockObject, UsbProtocolType.DasBlinkenlichten); lightsManager.HandleCommand(request, EventArgs.Empty); } finally { if (lightsManager != null) { lightsManager.Dispose(); } } // Ensure a clean end to the test this.mockFactory.VerifyAllExpectationsHaveBeenMet(); }