Пример #1
0
        public void StateAvailable_ChargingFalse()
        {
            var id = Guid.NewGuid();

            _charger.IsConnected().Returns(false);
            _reader.RFChipRead += Raise.EventWith <RFReaderChangedEventArgs>(new RFReaderChangedEventArgs(id));
            _uut.RFIDDetected(id);

            _display.Received().displayMsg("Din telefon er ikke ordentlig tilsluttet. Prøv igen.");
        }
Пример #2
0
        public void TestFunctionCalledForChargerIsConnectedReturnsTrue(int id)
        {
            //Default state of the station is available
            using var cLogger = new ConsoleOutput();
            _charger.IsConnected().Returns(true);
            _reader.RFIDReadEvent += Raise.EventWith(new RFIDReaderEventArgs()
            {
                RFID = id
            });

            _lock.Received(1).LockDoor();
            _charger.Received(1).StartCharge();
            _logger.Received(1).LogDoorLocked(id);
            _display.Received(1).DisplayString("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op.");
        }
Пример #3
0
        public void RFIDDetected(Guid id)
        {
            switch (state)
            {
            case LadeskabState.Available:
                // Check for ladeforbindelse
                if (_charger.IsConnected())
                {
                    Locked();
                    _charger.StartCharge();
                    _oldId = id;
                    LogDoorlocked(id);

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

                break;

            case LadeskabState.DoorOpen:
                _display.displayMsg("Nothing");

                break;

            case LadeskabState.Locked:
                // Check for correct ID

                if (CheckId(_oldId, id))
                {
                    _charger.StopCharge();
                    Unlocked();
                    LogDoorunlocked(id);

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

                break;
            }
        }
Пример #4
0
        // Event handler for the event "RFID Detected" from the state machine diagram for the class
        private void RfidDetected(object sender, RfidChangedEventArgs e)
        {
            switch (_lockState)
            {
            case ChargerLockState.Available:
                _display.ShowConnectPhone();
                // Check for charger connection
                if (_charger.IsConnected())
                {
                    _door.LockDoor();
                    _charger.StartCharge();
                    _oldId = e.Rfid;
                    _logger.LogDoorLocked(e.Rfid);
                    _display.ShowOccupied();

                    _lockState = ChargerLockState.Locked;
                }
                else
                {
                    _display.ShowConnectionErr();
                }

                break;

            case ChargerLockState.DoorOpen:
                _display.ShowInputRfid();
                _lockState = ChargerLockState.Available;
                break;

            case ChargerLockState.Locked:
                // Check for correct ID
                if (CheckId(e.Rfid))
                {
                    _charger.StopCharge();
                    _door.UnlockDoor();
                    _logger.LogDoorUnlocked(e.Rfid);
                    _display.ShowRmvPhone();
                    _lockState = ChargerLockState.Available;
                }
                else
                {
                    _display.ShowRfidErr();
                }

                break;
            }
        }
Пример #5
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 (_charger.IsConnected())
                {
                    _lock.LockDoor();
                    _charger.StartCharge();
                    _oldId = id;
                    _logger.LogDoorLocked(_oldId);
                    _display.DisplayString("Skabet er låst og din telefon lades. Brug dit RFID tag til at låse op.");
                    _state = LadeskabState.Locked;
                }
                else
                {
                    _display.DisplayString("Din telefon er ikke ordentlig tilsluttet. Prøv igen.");
                }

                break;

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

            case LadeskabState.Locked:
                // Check for correct ID
                if (CheckID(id))
                {
                    _charger.StopCharge();
                    _lock.UnlockDoor();
                    _logger.LogDoorUnlocked(id);

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

                break;
            }
        }
Пример #6
0
        public void RfidDetected_StateAvailable_ChargerIsNotConnected()
        {
            rfidReader.DetectRfid += Raise.EventWith(this, new RfidChangedEventArgs());

            charger.IsConnected().Returns(false);

            charger.Received(1).IsConnected();
        }