示例#1
0
            public void Revealing_an_untouched_tile_should_set_status_to_clicked()
            {
                var tile = new MineTile();

                tile.GetStatus().Should().Be(TileStatus.Untouched);

                tile.Reveal();

                tile.GetStatus().Should().Be(TileStatus.Revealed);
            }
示例#2
0
            public void Unflagging_an_untouched_tile_should_do_nothing()
            {
                var tile = new MineTile();

                tile.GetStatus().Should().Be(TileStatus.Untouched);

                tile.UnFlag();

                tile.GetStatus().Should().Be(TileStatus.Untouched);
            }
示例#3
0
            public void Flagging_an_untouched_tile_should_flag_it()
            {
                var tile = new MineTile();

                tile.GetStatus().Should().Be(TileStatus.Untouched);

                tile.Flag();

                tile.GetStatus().Should().Be(TileStatus.Flagged);
            }
示例#4
0
            public void Clicking_a_mine_tile_should_mark_it_clicked()
            {
                var tile = new MineTile();

                tile.GetStatus().Should().Be(TileStatus.Untouched);

                tile.Click();

                tile.GetStatus().Should().Be(TileStatus.Revealed);
            }
示例#5
0
            public void Flagging_a_flagged_tile_should_do_nothing()
            {
                var tile = new MineTile();

                tile.Flag();
                tile.GetStatus().Should().Be(TileStatus.Flagged);

                tile.Flag();

                tile.GetStatus().Should().Be(TileStatus.Flagged);
            }
示例#6
0
            public void Clicking_a_mine_tile_should_remove_the_flag()
            {
                var tile = new MineTile();

                tile.Flag();
                tile.GetStatus().Should().Be(TileStatus.Flagged);

                tile.Click();

                tile.GetStatus().Should().Be(TileStatus.Untouched);
            }
示例#7
0
            public void Revealing_a_flagged_tile_should_set_status_to_clicked()
            {
                var tile = new MineTile();

                tile.Flag();
                tile.GetStatus().Should().Be(TileStatus.Flagged);

                tile.Reveal();

                tile.GetStatus().Should().Be(TileStatus.Revealed);
            }
示例#8
0
            public void Revealing_a_clicked_tile_should_do_nothing()
            {
                var tile = new MineTile();

                tile.Click();
                tile.GetStatus().Should().Be(TileStatus.Revealed);

                tile.Reveal();

                tile.GetStatus().Should().Be(TileStatus.Revealed);
            }
示例#9
0
            public void Flagging_a_clicked_tile_should_throw_an_error()
            {
                var tile = new MineTile();

                tile.Click();
                tile.GetStatus().Should().Be(TileStatus.Revealed);

                var ex = Assert.Throws <InvalidOperationException>(() => tile.Flag());

                ex.Message.Should().Be("Cannot flag a clicked tile.");
            }