示例#1
0
        public void Should_start_ticker_in_start()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <ITicker>()
            .Verify(t => t.Start());
        }
示例#2
0
        public void Should_show_bucket_views_in_start()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <IBucketView>()
            .Verify(v => v.Show());
        }
示例#3
0
        public void should_start_new_game_round_in_start()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <IGameEngine>()
            .Verify(g => g.StartNewRound(), Times.Once);
        }
示例#4
0
        public void Should_throw_if_already_started_in_start()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            Action secondStartAction = () => presenter.Start();

            secondStartAction.Should().Throw <InvalidOperationException>();
        }
示例#5
0
        public void Should_stop_ticker_on_game_round_finished()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <IGameEngine>()
            .Raise(e => e.RoundFinished += null, 100);

            env.Dependency <ITicker>()
            .Verify(t => t.Stop(), Times.Once);
        }
示例#6
0
        public void Should_refresh_photo_view_on_engine_tick_processed()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <IGameEngine>()
            .Raise(e => e.TickProcessed += null);

            env.Dependency <IPhotoView>()
            .Verify(v => v.Refresh(), Times.Once);
        }
示例#7
0
        public void Should_hide_current_score_on_round_finished()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <IGameEngine>()
            .Raise(e => e.RoundFinished += null, 52);

            env.Dependency <ICurrentScoreView>()
            .Verify(v => v.Hide(), Times.Once);
        }
示例#8
0
        public void Should_show_current_score_on_current_score_change()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <IGameEngine>()
            .Raise(e => e.CurrentScoreChanged += null, 52);

            env.Dependency <ICurrentScoreView>()
            .Verify(v => v.Show(52), Times.Once);
        }
示例#9
0
        public void Should_make_photo_view_fading_out_on_bucket_chosen()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <IGameEngine>()
            .Raise(e => e.BucketChosen += null, 15);

            env.Dependency <IPhotoView>()
            .Verify(v => v.StartFadingOut(15), Times.Once);
        }
示例#10
0
        public void Should_make_engine_process_tick_on_ticked()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <ITicker>()
            .Raise(v => v.Ticked += null, 12);

            env.Dependency <IGameEngine>()
            .Verify(e => e.ProcessTick(12), Times.Once);
        }
示例#11
0
        public void Should_start_ticker_on_play_again_requested()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <IGameResultView>()
            .Raise(v => v.PlayAgainRequested += null);

            env.Dependency <ITicker>()
            .Verify(t => t.Start(), Times.Exactly(2));
        }
示例#12
0
        public void Should_start_new_round_on_play_again_requested()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <IGameResultView>()
            .Raise(v => v.PlayAgainRequested += null);

            env.Dependency <IGameEngine>()
            .Verify(e => e.StartNewRound(), Times.Exactly(2));
        }
示例#13
0
        public void Should_hide_game_result_view_on_play_again_requested()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <IGameResultView>()
            .Raise(v => v.PlayAgainRequested += null);

            env.Dependency <IGameResultView>()
            .Verify(v => v.Hide(), Times.Once);
        }
示例#14
0
        public void Should_show_game_result_view_on_game_round_finished()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            env.Dependency <IGameEngine>()
            .Raise(e => e.RoundFinished += null, 100);

            env.Dependency <IGameResultView>()
            .Verify(v => v.Show(100), Times.Once);
        }
示例#15
0
        public void Should_show_photo_view_on_next_photo_run()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            var photo = new Photo(new Point(), "1", "1");

            env.Dependency <IGameEngine>()
            .Raise(e => e.NextPhotoRun += null, photo);

            env.Dependency <IPhotoView>()
            .Verify(v => v.Show(photo), Times.Once);
        }
示例#16
0
        public void Should_make_engine_process_pan_on_pan_recognized()
        {
            var env = new TestEnv();

            var presenter = env.Setup();

            presenter.Start();

            var vector = new Vector();

            env.Dependency <IGestureRecognizer>()
            .Raise(e => e.PanRecognized += null, vector);

            env.Dependency <IGameEngine>()
            .Verify(e => e.ProcessPan(vector), Times.Once);
        }