public Task ShouldNotThrowWhenRunningDefaultRunner()
        {
            var testScenarioRunner = new TestScenarioRunner();

            testScenarioRunner.DelayReporting = false;
            return(testScenarioRunner.Run(def => def.Given().When(new object()).Then()));
        }
        public async Task WhenVerificationFailsResultShouldFail()
        {
            var runner = new TestScenarioRunner();
            var ex     = await Record.ExceptionAsync(() => runner.Run(def => def.Given().When(new object()).Then(new object())));

            Assert.IsType <ScenarioVerificationException>(ex);
        }
        public async Task ScenarioThatThrowsExpectedExceptionShouldSucceed()
        {
            var runner = new TestScenarioRunner();
            var ex     = await Record.ExceptionAsync(() => runner.Run(def => def.Given().When(new InvalidTimeZoneException()).Throws(new InvalidTimeZoneException())));

            Assert.Null(ex);
        }
        public async Task ScenarioThatThrowsUnexpectedExceptionShouldFail()
        {
            var runner = new TestScenarioRunner();

            var ex = await Record.ExceptionAsync(() => runner.Run(def => def.Given().When(new InvalidTimeZoneException()).Then()));

            Assert.IsType <InvalidTimeZoneException>(ex);
        }
        public void Setup()
        {
            _mockConsole = new MockConsole();

            _distanceOfSpecificRoutesCalculator = MockRepository.GenerateStub <ICalculateDistancesOfSpecificRoutes>();
            _routesFinder = MockRepository.GenerateStub <IFindRoutes>();

            _routesFinder.Stub(r => r.GetRoutes(null, null)).IgnoreArguments().Return(new List <Route>());
            _routesFinder.Stub(r => r.GetShortestRoute(null, null)).IgnoreArguments().Return(new Route());

            _testScenarioRunner = new TestScenarioRunner(_mockConsole, _distanceOfSpecificRoutesCalculator, _routesFinder);
        }