public void Accelerate_ShouldDownshift_WhenCurrentRpmIsLesserThanDownshiftBoundary()
        {
            var currentRpm = new Rpm(800d);

            _externalSystems.GetCurrentRpm().Returns(currentRpm);

            var threshold = new Threshold(0.8d);

            Sut().Accelerate(threshold);

            _gearShifter.Received(1).Downshift();
            _gearShifter.DidNotReceive().Upshift();
        }
Exemple #2
0
        public void Accelerate_ShouldDownshift_WhenCurrentRpmIsLesserThanDownshiftBoundary()
        {
            var currentRpm = new Rpm(1000d);

            _externalSystems.GetCurrentRpm().Returns(currentRpm);

            var shiftBoundaries = GetShiftBoundaries(1500d, 3000d);

            Sut().Accelerate(shiftBoundaries);

            _gearShifter.Received(1).Downshift();
            _gearShifter.DidNotReceive().Upshift();
        }
        public void Accelerate_ShouldCallAccelerateOnCurrectAggressiveMode_WhenNotKickdown()
        {
            var aggressiveMode = Substitute.For <IAggressiveMode>();

            _aggressiveModeFactory.Create().Returns(aggressiveMode);

            var threshold = new Threshold(0.4d);

            Sut().Accelerate(threshold);

            _gearShifter.DidNotReceive().Downshift();
            _gearShifter.DidNotReceive().Upshift();
            aggressiveMode.Received().Accelerate(_gearShiftBoundaries);
        }
        public void Accelerate_ShouldOnlyCallAccelerateOnBaseMode_WhenNotDrivingDown()
        {
            _externalSystems.IsDrivingDown().Returns(false);

            var threshold = new Threshold(0.8d);

            Sut().Accelerate(threshold);

            _gearShifter.DidNotReceive().Downshift();
            _baseMode.Received().Accelerate(threshold);
        }