public void GameIsFinishedWhenTheCurrentAdvokatIsBlockedAndHeStartHisMoveWithAnAdvokatToken() { this.board.SelectByPosition(4, 4).Token = new AdvocatToken { Color = Colors.Red }; this.board.SelectByPosition(3, 4).Token = new ParagraphToken(); this.board.SelectByPosition(5, 4).Token = new ParagraphToken(); this.board.SelectByPosition(4, 3).Token = new ParagraphToken(); this.board.SelectByPosition(4, 5).Token = new ParagraphToken(); A.CallTo(() => this.fieldListFactory.Create(A<int>._, A<int>._)).Returns(this.board); this.testee = new GameBoard(this.fieldListFactory, 1); var result = this.testee.PlaceToken(this.board.SelectByPosition(4, 4)); result.IsValid.Should().Be(false); result.Message.StartsWith("Spiel beendet!").Should().Be(true); }
public void GetCurrentScoreReturnsAnEmptyList_WhenTheFieldsAreEmpty() { var board = this.Create8x8Board(); A.CallTo(() => this.fieldListFactory.Create(A<int>._, A<int>._)).Returns(board); this.testee = new GameBoard(this.fieldListFactory, 1); var currentScore = this.testee.GetCurrentScore(); currentScore.Should().BeEmpty(); }
public void GetCurrentScoreReturnsAListOfZeroScores_WhenOnlyAdvocatTokensArePresent() { var board = this.Create8x8Board(); board.SelectByPosition(0, 0).Token = new AdvocatToken(); board.SelectByPosition(0, 7).Token = new AdvocatToken(); board.SelectByPosition(7, 0).Token = new AdvocatToken(); board.SelectByPosition(7, 7).Token = new AdvocatToken(); A.CallTo(() => this.fieldListFactory.Create(A<int>._, A<int>._)).Returns(board); this.testee = new GameBoard(this.fieldListFactory, 4); var currentScore = this.testee.GetCurrentScore().ToList(); currentScore.Should().OnlyContain(s => s.Score == 0); currentScore.Count().Should().Be(4); }
public void FieldListPropertyIsLoadedFromFieldListFactory() { this.testee = new GameBoard(this.fieldListFactory, 4); this.testee.Fields.Count().Should().Be(64); }
public void WinkelzugIsPossibleWhenNoOtherTokensArePresent() { this.board.SelectByPosition(4, 4).Token = new AdvocatToken(); this.testee = new GameBoard(this.fieldListFactory, 1); this.testee.IsWinkelzugPossible(this.board.SelectByPosition(4, 4)).Should().Be(true); }
public void WinkelzugPossibleWhenOnlyOneWinkelzugPossible2() { this.board.SelectByPosition(4, 4).Token = new AdvocatToken(); this.board.SelectByPosition(5, 4).Token = new ParagraphToken(); this.board.SelectByPosition(4, 3).Token = new ParagraphToken(); this.board.SelectByPosition(4, 5).Token = new ParagraphToken(); this.board.SelectByPosition(3, 3).Token = new ParagraphToken(); this.board.SelectByPosition(2, 3).Token = new ParagraphToken(); this.board.SelectByPosition(1, 3).Token = new ParagraphToken(); this.board.SelectByPosition(3, 5).Token = new ParagraphToken(); this.board.SelectByPosition(2, 5).Token = new ParagraphToken(); this.board.SelectByPosition(1, 6).Token = new ParagraphToken(); this.board.SelectByPosition(0, 5).Token = new ParagraphToken(); this.board.SelectByPosition(0, 4).Token = new ParagraphToken(); this.testee = new GameBoard(this.fieldListFactory, 1); this.testee.IsWinkelzugPossible(this.board.SelectByPosition(4, 4)).Should().Be(true); }
public void WinkelZugIsPossibleWhenNoOtherTokenAndAdvokatIsInCorner() { this.board.SelectByPosition(0, 0).Token = new AdvocatToken(); this.testee = new GameBoard(this.fieldListFactory, 1); this.testee.IsWinkelzugPossible(this.board.SelectByPosition(4, 4)).Should().Be(true); }
public void Setup() { this.fieldListFactory = A.Fake<IFieldListFactory>(); this.board = this.Create8x8Board(); A.CallTo(() => this.fieldListFactory.Create(A<int>._, A<int>._)).Returns(this.board); this.moveFactory = A.Fake<IMoveFactory>(); this.testee = new GameBoard(this.fieldListFactory, this.moveFactory, 4); }
public void NoWinkelzugPossibleWhenSurroundedByTokens() { this.board.SelectByPosition(4, 4).Token = new AdvocatToken(); this.board.SelectByPosition(3, 4).Token = new ParagraphToken(); this.board.SelectByPosition(5, 4).Token = new ParagraphToken(); this.board.SelectByPosition(4, 3).Token = new ParagraphToken(); this.board.SelectByPosition(4, 5).Token = new ParagraphToken(); this.testee = new GameBoard(this.fieldListFactory, 1); this.testee.IsWinkelzugPossible(this.board.SelectByPosition(4, 4)).Should().Be(false); }
public void GetCurrentScoreReturnsValueOfField_WhenOneParagraphTokenIsPresent() { var board = this.Create8x8Board(); board.SelectByPosition(0, 0).Token = new AdvocatToken() { Color = Colors.Black }; this.AddParagraphTokenToField(board, Colors.Black, 2, 0, 1); A.CallTo(() => this.fieldListFactory.Create(A<int>._, A<int>._)).Returns(board); this.testee = new GameBoard(this.fieldListFactory, 1); var currentScore = this.testee.GetCurrentScore().ToList(); currentScore.Should().OnlyContain(s => s.Score == 2); currentScore.Count().Should().Be(1); }
public void GetCurrentScoreReturnsSumOfFieldValuesPerColor_WhenSomeParagraphTokensArePresent() { var board = this.Create8x8Board(); board.SelectByPosition(0, 0).Token = new AdvocatToken() { Color = Colors.Black }; board.SelectByPosition(7, 0).Token = new AdvocatToken() { Color = Colors.White }; board.SelectByPosition(0, 7).Token = new AdvocatToken() { Color = Colors.Blue }; this.AddParagraphTokenToField(board, Colors.Black, 2, 0, 1); this.AddParagraphTokenToField(board, Colors.Black, 4, 1, 1); this.AddParagraphTokenToField(board, Colors.White, 2, 0, 6); this.AddParagraphTokenToField(board, Colors.White, 8, 4, 2); this.AddParagraphTokenToField(board, Colors.Blue, 2, 7, 2); this.AddParagraphTokenToField(board, Colors.Blue, 16, 4, 3); this.AddParagraphTokenToField(board, Colors.Blue, 8, 5, 2); A.CallTo(() => this.fieldListFactory.Create(A<int>._, A<int>._)).Returns(board); this.testee = new GameBoard(this.fieldListFactory, 1); var currentScore = this.testee.GetCurrentScore().ToList(); currentScore.Should().Contain(s => s.Color == Colors.Black && s.Score == 6); currentScore.Should().Contain(s => s.Color == Colors.White && s.Score == 10); currentScore.Should().Contain(s => s.Color == Colors.Blue && s.Score == 26); }