public void GameFieldHavingCellsWithNumbersIsNotReordered() { var strategy = new ReorderBalloonsStrategyFly(); var field = new GameField(2, 2); field[0, 0] = new BalloonOne(); field[0, 1] = new BalloonTwo(); field[1, 0] = new BalloonThree(); field[1, 1] = new BalloonFour(); strategy.ReorderBalloons(field); var isChanged = false; int nextSymbol = 0; for (int i = 0; i < field.Rows; i++) { for (int j = 0; j < field.Columns; j++) { nextSymbol++; if (field[i, j].Symbol != nextSymbol.ToString()) { isChanged = true; } } } Assert.IsFalse(isChanged); }
public void PopBallonsCommandThrowWithNegativeInput() { Setup(); var originalField = new GameField(2, 2); originalField[0, 0] = new BalloonOne(); originalField[0, 1] = new BalloonTwo(); originalField[1, 0] = new BalloonThree(); originalField[1, 1] = new BalloonFour(); var popC = new PopBalloonsCommand(this.balloonsFactory, this.field, -2, -2); popC.Execute(); }
public void PopBallonsCommandShouldWorkProperlyWithValidInput() { Setup(); var originalField = new GameField(2, 2); originalField[0, 0] = new BalloonOne(); originalField[0, 1] = new BalloonTwo(); originalField[1, 0] = new BalloonThree(); originalField[1, 1] = new BalloonFour(); var popC = new PopBalloonsCommand(this.balloonsFactory, this.field, 1, 1); popC.Execute(); Assert.AreNotEqual(field, originalField); }
public void TwoDimensionalGameFieldWithFirstCellHavingSymbolDotIsMovedAtBottom() { var strategy = new ReorderBalloonsStrategyFly(); var field = new GameField(2, 2); field[0, 0] = new BalloonPoped(); field[0, 1] = new BalloonTwo(); field[1, 0] = new BalloonThree(); field[1, 1] = new BalloonFour(); strategy.ReorderBalloons(field); Assert.IsInstanceOfType(field[1, 0], typeof(BalloonPoped)); }
public void TwoDimensionalGameFieldWithThirdCellHavingSymbolDotIsMovedAtTop() { var strategy = new ReorderBalloonsStrategyDefault(); var field = new GameField(2, 2); field[0, 0] = new BalloonOne(); field[0, 1] = new BalloonTwo(); field[1, 0] = new BalloonPoped(); field[1, 1] = new BalloonFour(); strategy.ReorderBalloons(field); Assert.IsInstanceOfType(field[0, 0], typeof(BalloonPoped)); }
/// <summary> /// Method for taking Balloons, if the Balloon is already in the dictionary, it's not added again /// </summary> public Balloon GetBalloon(string symbol) { if (this.balloons.ContainsKey(symbol)) { return this.balloons[symbol]; } Balloon balloon; switch (symbol) { case "1": { balloon = new BalloonOne(); break; } case "2": { balloon = new BalloonTwo(); break; } case "3": { balloon = new BalloonThree(); break; } case "4": { balloon = new BalloonFour(); break; } case ".": { balloon = new BalloonPoped(); break; } default: { throw new ArgumentException(string.Format(BalloonSymbolErrorMessage, symbol)); } } this.balloons.Add(symbol, balloon); return balloon; }