示例#1
0
        public void from_VACANT_DOOR_CLOSED_PHONE_CONNECTED_AWAITING_RFID_to_OCCUPIED_DOOR_CLOSED_AWAITING_RFID()
        {
            //arrange
            _doorSensor.DoorOpened        += Raise.EventWith(EventArgs.Empty);
            _chargeControl.PhoneConnected += Raise.EventWith(EventArgs.Empty);
            _doorSensor.DoorClosed        += Raise.EventWith(EventArgs.Empty);


            //act
            _rfidReader.RfidDetected += Raise.EventWith(new RfidDetectedEventArgs(1234));

            //assert
            _verificationUnit.Received(1).LockDoorWithReceivedID(1234);
            _logger.Received(1).LogThis("Door has been locked");
            _userOutput.Received().Notify_DoorLocked_ScanRfidToUnlock();
        }
        public void CheckIf_ShowReadRfidMessage_IsCalled_WhenDoorCloseEventIsTriggered_AndStateIsDoorOpen()
        {
            bool doorClose = true;
            bool doorOpen  = true;

            _doorSimulator.DoorOpenEvent += Raise.EventWith(new DoorOpenEventArgs()
            {
                DoorOpened = doorOpen
            });
            _doorSimulator.DoorCloseEvent += Raise.EventWith(new DoorCloseEventArgs()
            {
                DoorClosed = doorClose
            });

            _displaySimulator.Received(1).ShowReadRfidMessage();
        }
        public void RfidDetected_StateAvailableAndChargerNotConnected_DisplayCalledOnce()
        {
            // Arrange

            _fakeChargeControl.IsConnected().Returns(false);

            // Act - Raise event in fake
            _fakeRfidReader.RfidEvent +=
                Raise.EventWith(new RfidEventArgs()
            {
                Id = 1
            });

            // Assert
            _fakeDisplay.Received(1).UpdateUserMsg("Din telefon er ikke ordentlig tilsluttet. Prøv igen.");
        }
示例#4
0
        public void RfidEvent_LockedWrongId_DisplayCalled(string SimulatedId)
        {
            chargeControl.IsConnected().Returns(true);
            door.DoorCloseEvent += Raise.EventWith(null, new DoorEventArgs());

            rfidReader.TagReadEvent += Raise.EventWith(null, new RfidEventArgs()
            {
                Id = "This id was used to lock ladeskab"
            });

            rfidReader.TagReadEvent += Raise.EventWith(null, new RfidEventArgs()
            {
                Id = SimulatedId
            });
            display.Received(1).RFIDError();
        }
示例#5
0
        public void RfidEvent_LockedCorrectId_LogUpdated(string SimulatedId)
        {
            chargeControl.IsConnected().Returns(true);
            door.DoorCloseEvent += Raise.EventWith(null, new DoorEventArgs());

            rfidReader.TagReadEvent += Raise.EventWith(null, new RfidEventArgs()
            {
                Id = SimulatedId
            });

            rfidReader.TagReadEvent += Raise.EventWith(null, new RfidEventArgs()
            {
                Id = SimulatedId
            });
            logFile.Received(1).DoorUnlocked(SimulatedId);
        }
示例#6
0
        public void EventRaisedWhenArgumentHasNoDefaultConstructor()
        {
            // set our substitute event handler to keep count of events raised
            var numberOfEvents = 0;

            engine.LowFuelWarning += (sender, args) => numberOfEvents++;

            // we don't care about the sender, so skip it
            engine.LowFuelWarning += Raise.EventWith(new LowFuelWarningEventArgs(10));

            // now we do care about the sender so use one, albeit any old object for the purposes of this test!
            engine.LowFuelWarning += Raise.EventWith(new object(), new LowFuelWarningEventArgs(10));

            // Now we can assert the number of events raised matches the count from our substitute handler
            Assert.AreEqual(2, numberOfEvents);
        }
示例#7
0
        public void Ready_PowerAndTime_CookerIsCalledCorrectly()
        {
            powerButton.Pressed += Raise.EventWith(this, EventArgs.Empty);
            // Now in SetPower
            powerButton.Pressed += Raise.EventWith(this, EventArgs.Empty);

            timeButton.Pressed += Raise.EventWith(this, EventArgs.Empty);
            // Now in SetTime
            timeButton.Pressed += Raise.EventWith(this, EventArgs.Empty);

            // Should call with correct values
            startCancelButton.Pressed += Raise.EventWith(this, EventArgs.Empty);

            // Error - power is 15 %
            cooker.Received(1).StartCooking(15, 120);
        }
示例#8
0
        public void DisplayCharge_WhenPhoneLockerIsAvailableAndChargerConnectedRfidDetected_DisplayChargeStartedAndLockerOccupied(string message)
        {
            //ARRANGE
            UUT.State = PhoneLockerState.Available;
            fakeChargeControl.Connected = true;


            //ACT
            fakeRfidReader.RFIDDetectedEvent += Raise.EventWith(new RFIDDetectedEventArgs()
            {
                RFID = 0
            });

            //ASSERT
            fakeDisplay.Received(1).DisplayCharge(message);
        }
示例#9
0
        public void SeparateTracks_ChecksIfTracksAreTooCloseToEachOther_ContainsListOfSeparatingTracks()
        {
            var data = new List <ITrack>();
            var args = new EventTracks(data);

            var trackOne = new Track("TagOne", _trackOne, DateTime.Now);
            var trackTwo = new Track("TagTwo", _trackTwo, DateTime.Now);

            data.Add(trackOne);
            data.Add(trackTwo);

            _updateModule.TracksUpdated += Raise.EventWith(args);

            Assert.That(_collisions.Count(), Is.EqualTo(1));
            Assert.That(_collisions.Any(), Is.True);
        }
示例#10
0
        public void UnlockDoor_WhenRFIDIsNotCorrect_PhoneLockerIsLockedChargerConnectedRfidDetected_CallNotReceived(int rfid)
        {
            //ARRANGE
            UUT.State = PhoneLockerState.Locked;

            UUT.Rfid  = rfid; //id fra event
            UUT.oldId = 99;   //gammelt id fra da man låste skabet

            //ACT
            fakeRfidReader.RFIDDetectedEvent += Raise.EventWith(new RFIDDetectedEventArgs()
            {
                RFID = 0
            });
            //ASSERT
            fakeDoor.DidNotReceive().UnlockDoor();
        }
示例#11
0
        public void DisplayText_WhenPhoneLockerIsAvailableAndChargerNotConnectedRfidDetected_DisplayTextWritesFailMessage(string message)
        {
            //ARRANGE
            UUT.State = PhoneLockerState.Available;
            fakeChargeControl.Connected = false;


            //ACT
            fakeRfidReader.RFIDDetectedEvent += Raise.EventWith(new RFIDDetectedEventArgs()
            {
                RFID = 0
            });

            //ASSERT
            fakeDisplay.Received(1).DisplayText(message);
        }
示例#12
0
        public void LockDoor_WhenPhoneLockerIsAvailableAndChargerNotConnectedRfidDetected_CallNotReceived()
        {
            //ARRANGE
            UUT.State = PhoneLockerState.Available;

            fakeChargeControl.Connected = false;

            //ACT
            fakeRfidReader.RFIDDetectedEvent += Raise.EventWith(new RFIDDetectedEventArgs()
            {
                RFID = 0
            });

            //ASSERT
            fakeDoor.DidNotReceive().LockDoor();
        }
示例#13
0
        public void StartCharge_WhenPhoneLockerIsAvailableChargerConnectedRfidDetected_CallReceived()
        {
            //ARRANGE
            UUT.State = PhoneLockerState.Available;

            fakeChargeControl.Connected = true;

            //ACT
            fakeRfidReader.RFIDDetectedEvent += Raise.EventWith(new RFIDDetectedEventArgs()
            {
                RFID = 0
            });

            //ASSERT
            fakeChargeControl.Received(1).StartCharge();
        }
示例#14
0
        public void DisplayCharge_WhenPhoneLockerIsAvailableAndChargerNotConnectedRfidDetected_DisplayChargeDoesNotReceiveCall()
        {
            //ARRANGE
            UUT.State = PhoneLockerState.Available;
            fakeChargeControl.Connected = false;


            //ACT
            fakeRfidReader.RFIDDetectedEvent += Raise.EventWith(new RFIDDetectedEventArgs()
            {
                RFID = 0
            });

            //ASSERT
            fakeDisplay.Received(0).DisplayCharge("");
        }
        public void RfidDetected_UnlockLocker_With_Wrong_ID(int TestId)
        {
            //This is to lock the door with testId so we can test rfidDetected when state is locked
            _door.CurrentDoorStatus.Returns(false);
            _chargeControl.isConnected().Returns(true);
            _rfidReader.RFIDValueEvent += Raise.EventWith(new RFIDEventArgs {
                id = TestId
            });


            _rfidReader.RFIDValueEvent += Raise.EventWith(new RFIDEventArgs {
                id = TestId + 1
            });
            _display.Received().DisplayWrongRFID();
            _log.Received().LogDoorTriedUnlockedWithWrongId(TestId + 1);
        }
        public void HandleTrackInsideAirspace_HandlesTrack_EventWasRaised()
        {
            _fakeTrackManagement = Substitute.For <ITrackManagement>();
            _uut = new AirTrafficMonitoring.FlightManagement.FlightManagement(_fakeAirspaceController, _fakeTrackRemover, _fakeTrackManagement);

            bool wasRaised = false;

            _uut.FlightDataReady += (sender, args) => wasRaised = true;
            TrackEventArgs e = new TrackEventArgs(new Track());

            // ACT
            _fakeAirspaceController.TrackInAirspace += Raise.EventWith <TrackEventArgs>(e);

            // ASSERT
            Assert.That(wasRaised, Is.EqualTo(true));
        }
示例#17
0
        public void RfidDeected_LadeskabstateIsLockedAndIdIsNOTEqualToOldId_DoesNotCalStopCharge(int oldId, int newId)
        {
            //Act
            //Først fyrres eventet en gang for at skifte state fra avalible til Locked
            chargeControl.Connected     = true;
            rfidReader.RFIDReaderEvent += Raise.EventWith(new RFIDReaderEventArg {
                ID = oldId
            });

            //Herefter fyrres eventet igen
            rfidReader.RFIDReaderEvent += Raise.EventWith(new RFIDReaderEventArg {
                ID = newId
            });

            chargeControl.Received(0).StopCharge();
        }
 public void ConnectPhone_RFIDscannedWhenInUse_CorrectID()
 {
     //Arrange
     _subChargeControl.isConnected().Returns(true);
     //Act
     _subScanner.ScanEvent += Raise.EventWith(new ScanEventArgs()
     {
         ScannedId = 10
     });
     _subScanner.ScanEvent += Raise.EventWith(new ScanEventArgs()
     {
         ScannedId = 10
     });
     //Assert
     _subDisplay.Received(1).PhoneDone();
 }
示例#19
0
        public void EjectButtonPressedPlayingAndPauseState()
        {
            startpausButton.ButtonPressedEvent += Raise.EventWith(this, EventArgs.Empty); // playing state
            ejectButton.ButtonPressedEvent     += Raise.EventWith(this, EventArgs.Empty);

            driver.Received().Stop();
            tray.Received().Open();
            display.Received().Clear();

            startpausButton.ButtonPressedEvent += Raise.EventWith(this, EventArgs.Empty); // pause state
            ejectButton.ButtonPressedEvent     += Raise.EventWith(this, EventArgs.Empty);

            driver.Received().Stop();
            tray.Received().Open();
            display.Received().Clear();
        }
示例#20
0
        public void returns_data_from_getAll_on_non_consecutive_receipts_with_incremental_changes()
        {
            TestCase <Address> testCase    = BuildTestCase <Address>();
            BlockHeader        blockHeader = Build.A.BlockHeader.WithNumber(1).WithHash(TestItem.KeccakA).TestObject;

            testCase.DataContract.GetAllItemsFromBlock(blockHeader).Returns(new[] { TestItem.AddressA });
            Block secondBlock = Build.A.Block.WithHeader(Build.A.BlockHeader.WithNumber(3).WithHash(TestItem.KeccakB).WithParentHash(TestItem.KeccakC).TestObject).TestObject;

            Address[] expected = { TestItem.AddressB };
            testCase.DataContract.GetAllItemsFromBlock(secondBlock.Header).Returns(expected);

            testCase.ContractDataStore.GetItemsFromContractAtBlock(blockHeader);
            testCase.BlockTree.NewHeadBlock += Raise.EventWith(new BlockEventArgs(secondBlock));

            testCase.ContractDataStore.GetItemsFromContractAtBlock(secondBlock.Header).Should().BeEquivalentTo(expected.Cast <object>());
        }
示例#21
0
        public void Ready_FullPower_CookerIsCalledCorrectly()
        {
            for (int i = 50; i <= 700; i += 50)
            {
                powerButton.Pressed += Raise.EventWith(this, EventArgs.Empty);
            }

            timeButton.Pressed += Raise.EventWith(this, EventArgs.Empty);
            // Now in SetTime

            // Should call with correct values
            startCancelButton.Pressed += Raise.EventWith(this, EventArgs.Empty);

            // Error here StartCooking should be called with percentage 1 - 100 %
            cooker.Received(1).StartCooking(100, 60);
        }
示例#22
0
        public void ShowReflogs_should_be_bound_via_FilterChanged(bool settingValue)
        {
            bool original = AppSettings.ShowReflogReferences;

            try
            {
                AppSettings.ShowReflogReferences = settingValue;

                _revisionGridFilter.FilterChanged += Raise.EventWith(_revisionGridFilter, new FilterChangedEventArgs(new()));
                _filterToolBar.GetTestAccessor().tsmiShowReflogs.Checked.Should().Be(settingValue);
            }
            finally
            {
                AppSettings.ShowReflogReferences = original;
            }
        }
示例#23
0
        public void RfidEvent_LockedCorrectId_DisplayUpdated(string SimulatedId)
        {
            chargeControl.IsConnected().Returns(true);
            door.DoorCloseEvent += Raise.EventWith(null, new DoorEventArgs());

            rfidReader.TagReadEvent += Raise.EventWith(null, new RfidEventArgs()
            {
                Id = SimulatedId
            });

            rfidReader.TagReadEvent += Raise.EventWith(null, new RfidEventArgs()
            {
                Id = SimulatedId
            });
            display.Received(1).RemovePhone();
        }
示例#24
0
        public void ReadEventFunction_ChargingCurrent_Display_DisplayPhoneCharging()
        {
            double usedCurrent = 250;

            _usbCharger.CurrentValueEvent += Raise.EventWith(new CurrentEventArgs {
                Current = 0
            });
            _usbCharger.CurrentValueEvent += Raise.EventWith(new CurrentEventArgs {
                Current = usedCurrent
            });
            double p = usedCurrent / 500;

            p = p * 100;
            p = 100 - p;
            _display.Received().DisplayPhoneCharging(p);
        }
示例#25
0
        public void Will_load_static_nodes_and_connect_to_them()
        {
            const int nodesCount  = 5;
            var       staticNodes = CreateNodes(nodesCount);

            _staticNodesManager.Nodes.Returns(staticNodes);
            _peerManager.Init();
            _peerManager.Start();
            foreach (var node in staticNodes)
            {
                _discoveryApp.NodeDiscovered += Raise.EventWith(new NodeEventArgs(new Node(node.Host, node.Port)));
            }

            Thread.Sleep(_travisDelay);
            _peerManager.ActivePeers.Count(p => p.Node.IsStatic).Should().Be(nodesCount);
        }
示例#26
0
        public void TestUserInterface_DisplayClear_CorrectOutput()
        {
            Console.SetOut(_stringWriter);
            _door.Opened         += Raise.EventWith(this, EventArgs.Empty);
            _door.Closed         += Raise.EventWith(this, EventArgs.Empty);
            _buttonPower.Pressed += Raise.EventWith(this, EventArgs.Empty);

            // Now in SetPower
            _timeButton.Pressed += Raise.EventWith(this, EventArgs.Empty);
            // Now in SetTime
            _startButton.Pressed += Raise.EventWith(this, EventArgs.Empty);

            _sut.CookingIsDone();

            Assert.That(_stringWriter.ToString().Contains("Display cleared"));
        }
示例#27
0
        public void DoorOpenedEvent_StateSetPower_LightOnDisplayClear()
        {
            // Arrange
            StringWriter output = new();

            powerbutton.Pressed += Raise.EventWith(this, EventArgs.Empty);
            Console.SetOut(output);

            //Act
            door.Open();

            //Assert
            string expectedOutput = "Light is turned on\r\nDisplay cleared\r\n";

            Assert.That(output.ToString(), Is.EqualTo(expectedOutput));
        }
示例#28
0
        public void Initial_TracksFilteredOneTrack_TrackIsCorrect()
        {
            List <Track> listToTest = new List <Track>();
            Track        track      = new Track()
            {
                Tag       = "NIC111", X = 25000, Y = 25000, Altitude = 5000,
                TimeStamp = DateTime.ParseExact("20151006213456789", "yyyyMMddHHmmssfff", CultureInfo.InvariantCulture)
            };

            listToTest.Add(track);
            TracksChangedEventArgs args = new TracksChangedEventArgs(listToTest);

            _parser.TracksChanged += Raise.EventWith(args);

            Assert.That(_tracksFilteredList[0], Is.EqualTo(track));
        }
示例#29
0
        public void TrackAllreadyExists_AddToRenderWithColor()
        {
            _fakeMonitoredAirspace.HasPositionWithinBoundaries(Arg.Any <Position>()).Returns(true);

            var record = new FlightRecord()
            {
                Tag       = "AA123",
                Position  = new Position(20000, 20000, 19000),
                Timestamp = DateTime.MinValue
            };

            _fakeFlight.FlightRecordReceived += Raise.EventWith(_fakeFlight, new FlightRecordEventArgs(record));
            _fakeFlight.FlightRecordReceived += Raise.EventWith(_fakeFlight, new FlightRecordEventArgs(record));

            _fakeView.Received().AddToRenderWithColor(Arg.Any <string>(), Arg.Any <ConsoleColor>());
        }
示例#30
0
        public void OnTimerTick_DisplayUpdated()
        {
            //Use NSubstitute to make the time remaining return 74 seconds
            int time = 74;

            _timer.TimeRemaining.Returns(time);

            int min = time / 60;
            int sec = time % 60;

            Console.SetOut(_stringWriter);
            //Raise the timer tick event, triggering the OnTimerTick event handler in CookController
            _timer.TimerTick += Raise.EventWith(new object(), new EventArgs());

            Assert.That(_stringWriter.ToString(), Contains.Substring($"Display shows: {min:D2}:{sec:D2}"));
        }