public void ShouldGetGameModeFromInput() { //Arrange FakeGameMode fakeGameMode = new FakeGameMode.Builder().Build(); FakeValidResponse <IGameMode> fakeValidResponse = new FakeValidResponse <IGameMode> .Builder().Response(fakeGameMode).Build(); GameModeSelection subject = new GameModeSelection(fakeValidResponse); //Act IGameMode gameMode = subject.Select(); //Assert gameMode.Should().Be(fakeGameMode); }
public void ShouldCreateOnlyHumanPlayerFromInput() { //Arrange FakePlayer fakePlayer = new FakePlayer.Builder().Build(); FakeValidResponse <IPlayer> fakeValidResponse = new FakeValidResponse <IPlayer> .Builder().Response(fakePlayer).Build(); OnlyHumanCreation subject = new OnlyHumanCreation(fakeValidResponse); //Act IPlayer actual = subject.Player("mark"); //Assert actual.Should().Be(fakePlayer); }
public void Input_ShouldWritePrompt() { //Arrange FakeCell fakeCell = new FakeCell.Builder().Value("?").Build(); FakeValidResponse <IGlyph> fakeValidResponse = new FakeValidResponse <IGlyph> .Builder().Response(null).Build(); FakeWriter fakeWriter = new FakeWriter(); HumanMoveInput subject = new HumanMoveInput(fakeValidResponse, fakeWriter); //Act subject.Input(fakeCell); //Assert fakeWriter.AssertLinesWritten("Player ?'s Turn"); }
public void ShouldReturnPlayersTurnsComputerAsX() { //Arrange FakeCell fakeCell = new FakeCell.Builder().Value("O").Build(); FakePlayer fakePlayer = new FakePlayer.Builder().Cell(fakeCell).Build(); FakePlayer fakePlayerComputer = new FakePlayer.Builder().Build(); FakeValidResponse <IPlayerOrder> fakeValidResponse = new FakeValidResponse <IPlayerOrder> .Builder().Response(new HumanFirstOrder()).Build(); FakePlayerCreation fakePlayerCreation = new FakePlayerCreation.Builder().Player(fakePlayer, fakePlayerComputer).Build(); FakeBoard fakeBoard = new FakeBoard.Builder().Build(); HumanVsComputerGameMode subject = new HumanVsComputerGameMode(fakeValidResponse, fakePlayerCreation, fakePlayerCreation); //Act IPlayersTurns actual = subject.ConfigurePlayers(fakeBoard); //Assert actual.Should().BeOfType <PlayersTurns>(); fakePlayerCreation.PlayerInvokedWith(""); fakePlayerCreation.PlayerInvokedWith("X"); }
public void ShouldCreateSecondHumanCreationFromInput() { //Arrange FakePlayer fakePlayer = new FakePlayer.Builder().Build(); FakeValidResponse <IPlayer> fakeValidResponse = new FakeValidResponse <IPlayer> .Builder().Response(fakePlayer).Build(); FakeFormattedValidInput <IPlayer> fakeFormattedValidInput = new FakeFormattedValidInput <IPlayer> .Builder() .AddPromptArg() .AddPatternArg() .ValidInput(fakeValidResponse) .Build(); SecondHumanCreation subject = new SecondHumanCreation(fakeFormattedValidInput); //Act IPlayer actual = subject.Player("mark"); //Assert actual.Should().Be(fakePlayer); fakeFormattedValidInput.AssertAddPromptArgInvokedWith("mark"); fakeFormattedValidInput.AssertAddPatternArgInvokedWith("mark"); }
public void ShouldCreateComputerPlayerFromInput() { //Arrange FakeSelectMoveAction fakeSelectMoveAction = new FakeSelectMoveAction.Builder().Build(); FakeValidResponse <ISelectMoveAction> fakeValidResponse = new FakeValidResponse <ISelectMoveAction> .Builder().Response(fakeSelectMoveAction).Build(); FakeFormattedValidInput <ISelectMoveAction> fakeFormattedValidInput = new FakeFormattedValidInput <ISelectMoveAction> .Builder() .AddPromptArg() .ValidInput(fakeValidResponse) .Build(); ComputerCreation subject = new ComputerCreation(fakeFormattedValidInput); //Act IPlayer actual = subject.Player("mark"); //Assert actual.Cell().Value().Should().Be("m"); actual.Should().BeOfType <ComputerPlayer>(); fakeFormattedValidInput.AssertAddPromptArgInvokedWith("mark"); fakeValidResponse.AssertInputInvoked(); }