Exemplo n.º 1
0
            public void testDisplayConnected()
            {
                //Act
                _door.OpenDoorEvent += Raise.EventWith(new OpenDoorEventArgs {
                    DoorOpen = "Door is open"
                });
                _door.ClosedDoorEvent += Raise.EventWith(new ClosedDoorEventArgs {
                    DoorClosed = "Door is closed"
                });
                _chargeControl.isConnected().Returns(true);
                _rfidReader.RfidDetectedEvent += Raise.EventWith(new RfidDetectedEventArgs {
                    id = 123
                });

                //Assert
                Assert.That(_display.ReceivedString, Is.EqualTo("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op."));
            }
        public void isConnected_Returns_TrueOrFalse(bool setConnection)
        {
            //Arrange
            _usbCharger.Connected.Returns(setConnection);
            //Act
            var connection = _chargeControl.isConnected();

            //Assert
            Assert.AreEqual(setConnection, connection);
        }
Exemplo n.º 3
0
        // Eksempel på event handler for eventet "RFID Detected" fra tilstandsdiagrammet for klassen
        private void RfidDetected(int id)
        {
            switch (_state)
            {
            case LadeskabState.Available:
                // Check for ladeforbindelse
                if (_chargeControl.isConnected())
                {
                    _Door.LockDoor();
                    _chargeControl.StartCharge();
                    _oldId = id;
                    using (var writer = File.AppendText(logFile))
                    {
                        writer.WriteLine(DateTime.Now.ToLongDateString() + ": Skab låst med RFID: {0}", id);
                    }

                    _Display.displayCommands("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op.");
                    _state = LadeskabState.Locked;
                }
                else
                {
                    _Display.displayCommands("Din telefon er ikke ordentlig tilsluttet. Prøv igen.");
                }

                break;

            case LadeskabState.DoorOpen:
                // Ignore
                break;

            case LadeskabState.Locked:
                // Check for correct ID
                if (id == _oldId)
                {
                    _chargeControl.StopCharge();
                    _Door.UnlockDoor();
                    using (var writer = File.AppendText(logFile))
                    {
                        writer.WriteLine(DateTime.Now.ToLongDateString() + ": Skab låst op med RFID: " + id.ToString());
                    }

                    _Display.displayCommands("Tag din telefon ud af skabet og luk døren");
                    _state = LadeskabState.Available;
                }
                else
                {
                    _Display.displayCommands("Forkert RFID tag");
                }

                break;
            }
        }
Exemplo n.º 4
0
        public void TestDoorStateChangedDetected_DoorLockedFalse_Display()
        {
            //Arrange
            _chargeControl.isConnected().Returns(true);
            _rfid.RfidEvent +=
                Raise.EventWith(new RfidEventArgs()
            {
                Rfid_ID = 1234
            });

            //Act
            _door.DoorEvent +=
                Raise.EventWith(new DoorEventArgs()
            {
                DoorClosed = false
            });

            //Assert
            _display.Received().displayCommands("Locker is occupied");
        }
Exemplo n.º 5
0
        public void RfidDetected(int id_rfid)
        {
            switch (_state)
            {
            case LadeSkabsState.Locked:
                if (CheckId(_oldId, id_rfid))
                {
                    _chargeControl.stopCharge();
                    _door.unlockDoor();

                    _log.PrintToFile(": Skab låst op med RFID: ", id_rfid);

                    _display.display("Tag din telefon ud af skabet og luk døren", 1);
                    _state = LadeSkabsState.Available;
                }
                else
                {
                    _display.display("Forkert RFID tag", 1);
                }


                break;

            // case LadeSkabsState.DoorOpen:
            //   break;

            case LadeSkabsState.Available:
                if (_chargeControl.isConnected())
                {
                    _door.lockDoor();
                    _chargeControl.startCharge();
                    _oldId = id_rfid;

                    _log.PrintToFile(": Skab låst med RFID: ", id_rfid);

                    _display.display("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op.", 1);
                    _state = LadeSkabsState.Locked;
                }
                else
                {
                    _display.display("Din telefon er ikke ordentlig tilsluttet. Prøv igen", 1);
                }

                break;
            }
        }
 public void ConnectPhone_RFIDscanned_PhoneNotConnected()
 {
     //Arrange
     _subChargeControl.isConnected().Returns(false);
     //Act
     _subScanner.ScanEvent += Raise.EventWith(new ScanEventArgs()
     {
         ScannedId = 10
     });
     //Assert
     _subDisplay.Received(1).ConnectionError();
 }
        /* Region content:
         * RfidDetected(object o, ScanEventArgs e)
         * DoorChanged(object o, DoorEventArgs e)
         */
        #region Handlers
        // method for event handler in RFIDscanner.
        private void RfidDetected(object o, ScanEventArgs e)
        {
            switch (_state)
            {
            case LadeskabState.Available:
                // Check for ladeforbindelse
                if (_charger.isConnected())
                {
                    _door.LockDoor();
                    _oldId = e.ScannedId;
                    _Log.LogDoorLocked(e.ScannedId);
                    _charger.StartCharge();
                    _display.Busy();
                    _state = LadeskabState.Locked;
                }
                else
                {
                    _display.ConnectionError();
                }

                break;

            case LadeskabState.DoorOpen:
                // Ignore
                break;

            case LadeskabState.Locked:
                // Check for correct ID
                if (e.ScannedId == _oldId)
                {
                    _charger.StopCharge();
                    _door.UnlockDoor();
                    _Log.LogDoorUnlocked(e.ScannedId);
                    _display.PhoneDone();
                    _state = LadeskabState.Available;
                }
                else
                {
                    _display.RFIDError();
                }
                break;
            }
        }
Exemplo n.º 8
0
            public void test_LadeSkabsStateLocked_false_id_connected_false()
            {
                _chargeControl.isConnected().Returns(false);

                _rfidReader.RfidDetectedEvent += Raise.EventWith(new RfidDetectedEventArgs {
                    id = 123
                });
                _rfidReader.RfidDetectedEvent += Raise.EventWith(new RfidDetectedEventArgs {
                    id = 123
                });

                _display.Received(2).display("Din telefon er ikke ordentlig tilsluttet. Prøv igen",
                                             1);
            }
 public void RfidDetected_DoorStatusFalse_ChargeIsConnectedTrue_DoorReceived_LockDoor(int TestId)
 {
     _door.CurrentDoorStatus.Returns(false);
     _chargeControl.isConnected().Returns(true);
     _rfidReader.RFIDValueEvent += Raise.EventWith(new RFIDEventArgs {
         id = TestId
     });
     _door.Received().LockDoor();
 }
Exemplo n.º 10
0
        public void RfidDetected(object sender, RFIDEventArgs e)
        {
            _id = e.id;
            switch (_state)
            {
            case LadeskabState.Available:

#if DEBUG
                Console.WriteLine("DEBUG:::_state = LadeskabState.Available");
#endif
                if (_door.CurrentDoorStatus == true)
                {
                    _display.DisplayDoorOpen();
                }
                else
                {
                    // Check for ladeforbindelse
                    if (_charger.isConnected())
                    {
                        _door.LockDoor();
                        _charger.StartCharge();
                        _oldId = _id;
                        _log.LogDoorLocked(_id);


                        _display.DisplayChargeLockerOccupied();
                        _state = LadeskabState.Locked;
#if DEBUG
                        Console.WriteLine("DEBUG:::_state after = " + _state);
#endif
                    }
                    else
                    {
                        _display.DisplayFailedConnection();
                    }
                }


                break;

            //case LadeskabState.DoorOpen:
            //    // Ignore
            //    break;

            case LadeskabState.Locked:
                // Check for correct ID
#if DEBUG
                Console.WriteLine("DEBUG:::_state = LadeskabState.Locked");
#endif
                if (_id == _oldId)
                {
                    _charger.StopCharge();
                    _door.UnlockDoor();
                    _log.LogDoorUnlocked(_id);
                    _display.DisplayRemovePhone();
                    _state = LadeskabState.Available;
                }
                else
                {
                    _display.DisplayWrongRFID();
                    _log.LogDoorTriedUnlockedWithWrongId(_id);
                }

                break;
            }
        }