Esempio n. 1
0
        public void ItVisitsAnd_AddsHardScore()
        {
            // Prepare:
            var score         = new RealScore();
            var boardDirector = new BoardDirector(new MediumStrategy(), 0, score, new Position(0, 0), new List <Bullet>());
            var builder       = new BoardBuilder();

            boardDirector.Construct(builder);
            var board = builder.Build();

            board.VisitVisitor();

            var mscore         = new RealScore();
            var mboardDirector = new BoardDirector(new HardStrategy(), 0, mscore, new Position(0, 0), new List <Bullet>());
            var mbuilder       = new BoardBuilder();

            mboardDirector.Construct(mbuilder);
            var mboard = mbuilder.Build();

            mboard.VisitVisitor();

            // Assert:

            Assert.True(score.Number < mscore.Number);
        }
Esempio n. 2
0
        public void ItHasSetAmountOfEnemies_OnTheGameBoardUnsubscribe()
        {
            // Prepare:

            var score = new RealScore();

            var visitor = new EnemyEasyVisitor(score);

            var spaceship = new SpaceShip();

            var gameTemplate = new SimpleGame();

            var board = new GameBoard(spaceship, visitor, gameTemplate);

            var enemiesList = new List <Enemy>();

            // Act:

            var enemy = new EasyEnemy();

            enemiesList.Add(enemy);
            enemiesList.Add(enemy.Clone());
            enemiesList.Add(enemy.Clone());

            enemiesList.ForEach(e => board.EnemiesSubscribe(e));

            board.EnemyUnsubscribe(enemiesList.FirstOrDefault());

            // Assert:

            Assert.NotNull(board);
            Assert.Equal(board.EnemiesCount, enemiesList.Count - 1);
        }
Esempio n. 3
0
        public void ItCreatesNullObjectCorrectly()
        {
            Score score = new NullScore();

            Assert.IsType <NullScore>(score);

            score.IncreaseScore(3);

            Assert.Equal(0, score.Number);

            score = new RealScore();

            score.IncreaseScore(3);

            Assert.Equal(3, score.Number);
        }
Esempio n. 4
0
        public void ItBuilds_GameBoard()
        {
            // Prepare:
            var score         = new RealScore();
            var boardDirector = new BoardDirector(new EasyStrategy(), 0, score, new Position(0, 0), new List <Bullet>());
            var builder       = new BoardBuilder();

            // Act:

            boardDirector.Construct(builder);
            var board = builder.Build();

            // Assert:

            Assert.NotNull(board);
            Assert.IsType <GameBoard>(board);
        }
Esempio n. 5
0
        public void ItBuilds_DifferentTemplatesRetro()
        {
            // Prepare:
            var score         = new RealScore();
            var boardDirector = new BoardDirector(new MediumStrategy(), 0, score, new Position(0, 0), new List <Bullet>());
            var builder       = new BoardBuilder();

            // Act:

            boardDirector.Construct(builder);
            var board = builder.Build();

            var drawTemplate = board.GetDrawTemplate();

            // Assert:

            Assert.NotNull(drawTemplate);
            Assert.IsType <RetroGame>(drawTemplate);
        }
Esempio n. 6
0
        public void ItNotifiesSubscribers_OnTheGameBoardRefreshView()
        {
            // Prepare:

            var score = new RealScore();

            var visitor = new EnemyEasyVisitor(score);

            var spaceship = new SpaceShip {
                Position = new Block {
                    From = new Position(1, 1), To = new Position(1, 1)
                }
            };

            var gameTemplate = new SimpleGame();

            var board = new GameBoard(spaceship, visitor, gameTemplate);

            // Act:

            var enemy = new EasyEnemy
            {
                Position = new Block()
                {
                    From = new Position(1, 1),
                    To   = new Position(1, 1)
                }
            };


            board.EnemiesSubscribe(enemy);

            spaceship.Shoot();

            board.RefreshView();

            // Assert:

            Assert.Equal(enemy.Health, 1);
        }