public void WhenComfortModeEnteredAndAggressivenessLevelSelectedIsSecondEventOccuredSendsAdequateDemand()
        {
            var serviceMock     = new Mock <IGearshiftService>();
            var characteristics = new EngineCharacteristics();
            var processManager  = new ResponsivenessModeProgramUpdatingProcess(serviceMock.Object, characteristics);

            processManager.ApplyEvent(new ComfortModeEntered());
            processManager.ApplyEvent(new AggressivenessLevelSelected(AggressivenessLevel.Second));

            serviceMock.Verify(x => x.KeepFollowingRpm(characteristics.GetRangeFor(ResponsivenessMode.Comfort, AggressivenessLevel.First)), Times.Once);
            serviceMock.Verify(x => x.KeepFollowingRpm(characteristics.GetRangeFor(ResponsivenessMode.Comfort, AggressivenessLevel.Second)), Times.Once);
        }
        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);
        }