예제 #1
0
        public void StationControl_RfidDetectedStateLockedAndOldidEqualsRFID_StopCharge()
        {
            //Arrange
            var _display = Substitute.For <IDisplay>();
            var _door    = Substitute.For <IDoor>();
            var _charger = Substitute.For <ICharger>();
            var _rfid    = Substitute.For <IRFIDReader>();
            FakeChargeControl _chargeControl = new FakeChargeControl();

            _uut = new StationControl(_rfid, _display, _door, _chargeControl);
            //Sætter state til at være Locked
            _door.DoorChangedEvent += Raise.EventWith(new DoorEventArgs {
                OpenDoor = false
            });
            _door.DoorChangedEvent += _uut.DoorClosed;
            _charger.Connected      = true;
            _rfid.RFIDEvent        += Raise.EventWith(new RFIDEventArgs {
                RFID = _uut._oldId
            });
            _rfid.RFIDEvent += _uut.RfidDetected;

            //Act
            _uut._state      = StationControl.ChargingCabinetState.Locked;
            _rfid.RFIDEvent += Raise.EventWith(new RFIDEventArgs {
                RFID = _uut._oldId
            });
            _rfid.RFIDEvent += _uut.RfidDetected;

            //Assert
            Assert.That(_chargeControl.calledMethod, Is.EqualTo(3));
        }
예제 #2
0
        public void StationControl_RfidDetectedStateAvailableAndChargerConnected_StartCharge()
        {
            //Arrange
            var _display = Substitute.For <IDisplay>();
            var _door    = Substitute.For <IDoor>();
            var _charger = Substitute.For <ICharger>();
            var _rfid    = Substitute.For <IRFIDReader>();
            FakeChargeControl _chargeControl = new FakeChargeControl();

            _uut = new StationControl(_rfid, _display, _door, _chargeControl);
            //Sætter state til at være available
            _door.DoorChangedEvent += Raise.EventWith(new DoorEventArgs {
                OpenDoor = false
            });
            _door.DoorChangedEvent += _uut.DoorClosed;

            //Act
            _chargeControl.connected = true;
            _rfid.RFIDEvent         += Raise.EventWith(new RFIDEventArgs {
                RFID = rfid
            });
            _rfid.RFIDEvent += _uut.RfidDetected;

            //Assert
            Assert.That(_chargeControl.calledMethod, Is.EqualTo(2));
        }