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); }
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); }
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); }
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); }
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); }
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); }