public void ReturnsProperRangeForModeAndAggressivenessLevel(ResponsivenessMode selectedMode, AggressivenessLevel selectedAggressiveness, double lowerShiftPoint, double upperShiftPoint)
        {
            var characteristics = new EngineCharacteristics();

            var characteristicsRange = characteristics.GetRangeFor(selectedMode, selectedAggressiveness);

            Assert.AreEqual(lowerShiftPoint, characteristicsRange.LowerShiftPoint.Value);
            Assert.AreEqual(upperShiftPoint, characteristicsRange.UpperShiftPoint.Value);
        }
        public void WhenSportModeEnteredAndAggressivenessLevelSelectedIsFirstEventOccuredSendsAdequateDemand()
        {
            var serviceMock     = new Mock <IGearshiftService>();
            var characteristics = new EngineCharacteristics();
            var processManager  = new ResponsivenessModeProgramUpdatingProcess(serviceMock.Object, characteristics);

            processManager.ApplyEvent(new SportModeEntered());
            processManager.ApplyEvent(new AggressivenessLevelSelected(AggressivenessLevel.First));

            serviceMock.Verify(x => x.KeepFollowingRpm(characteristics.GetRangeFor(ResponsivenessMode.Sport, AggressivenessLevel.First)), Times.Exactly(2));
        }