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)); }
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)); }