Пример #1
0
        public void Given_SessionPractice_IsEventMissing()
        {
            ProjectCarsStateData projectCarsStateData = new ProjectCarsStateData(
                carName: "Formula A", trackLocation: "Barcelona", trackVariant: "Club",
                lastLapTime: 60, lapInvalidated: false,
                gameState: GameState.GameIngamePlaying,
                sessionState: SessionState.SessionPractice,
                raceState: RaceState.RacestateRacing
                );

            bool eventWasFired = false;

            _challengeResultSender.ChallengeResultEvent += result => { eventWasFired = true; };

            _challengeResultSender.CheckProjectCarsStateData(projectCarsStateData);

            Assert.That(!eventWasFired);
        }
        public void Given_CheckingTwice_IsEventFiredOnlyOnce()
        {
            ProjectCarsStateData projectCarsStateData = new ProjectCarsStateData(
                carName: "Formula A", trackLocation: "Barcelona", trackVariant: "Club",
                lastLapTime: 100, lapInvalidated: false,
                gameState: GameState.GameIngamePlaying,
                sessionState: SessionState.SessionTimeAttack,
                raceState: RaceState.RacestateRacing
                );

            uint eventFiredCount = 0;

            _challengeResultSender.ChallengeResultEvent += result => { eventFiredCount++; };

            _challengeResultSender.CheckProjectCarsStateData(projectCarsStateData);
            _challengeResultSender.CheckProjectCarsStateData(projectCarsStateData);

            Assert.That(eventFiredCount, Is.EqualTo(1));
        }
        public void Given_DefaultInput_IsTrackLocationAndVariantEqual()
        {
            ProjectCarsStateData projectCarsStateData = new ProjectCarsStateData(
                carName: "Formula A", trackLocation: "Barcelona", trackVariant: "Club",
                lastLapTime: 60, lapInvalidated: false,
                gameState: GameState.GameIngamePlaying,
                sessionState: SessionState.SessionTimeAttack,
                raceState: RaceState.RacestateRacing
                );

            string trackLocationAndVariant = "";

            _challengeResultSender.ChallengeResultEvent += result =>
            {
                trackLocationAndVariant = result.TrackLocationAndVariant;
            };

            _challengeResultSender.CheckProjectCarsStateData(projectCarsStateData);

            Assert.That(trackLocationAndVariant, Is.EqualTo("Barcelona Club"));
        }
        public void Given_DefaultInput_IsTimeCorrect()
        {
            ProjectCarsStateData projectCarsStateData = new ProjectCarsStateData(
                carName: "Formula A", trackLocation: "Barcelona", trackVariant: "Club",
                lastLapTime: 60, lapInvalidated: false,
                gameState: GameState.GameIngamePlaying,
                sessionState: SessionState.SessionTimeAttack,
                raceState: RaceState.RacestateRacing
                );

            TimeSpan lastValidLapTime = new TimeSpan(0);

            _challengeResultSender.ChallengeResultEvent += result =>
            {
                lastValidLapTime = result.LastValidLapTime;
            };

            _challengeResultSender.CheckProjectCarsStateData(projectCarsStateData);

            Assert.That(lastValidLapTime.TotalSeconds, Is.EqualTo(60d));
        }