예제 #1
0
        public void TestForSensorNodeDisconnectionWhileInUse()
        {
            Console.WriteLine("Please ensure that the sensor arduino ('sens') is connected for this test. Press ENTER when ready");
            Console.ReadLine();

            ArduinoCommsBase sensorArduino = new SensorNodeArduino(mLogger);
            TestDelegate connectDel = new TestDelegate(delegate() { sensorArduino.StartArduinoComms(); });

            Assert.DoesNotThrow(connectDel);
            Assert.IsTrue(sensorArduino.IsConnected);

            sensorArduino.ToggleHeartbeat(true, 500, 3);

            Console.WriteLine(string.Format("Arduino {0} has now been connected. The test will validate behaviour when it is unplugged. Uplug the arduino to continue", sensorArduino.ArduinoID));

            System.Threading.ManualResetEvent disconnectEvent = new System.Threading.ManualResetEvent(false);
            sensorArduino.Disconnected += delegate(ArduinoCommsBase ard)
            {
                disconnectEvent.Set();
            };

            disconnectEvent.WaitOne();
            Assert.IsFalse(sensorArduino.IsConnected);

            Assert.DoesNotThrow(delegate() { sensorArduino.StopArduinoComms(true); });
        }