/** * @param Response $response * @return Move|null */ public function handle(Response $response) { $board = $response->getBoard(); $identity = $response->getPlayer(); $this->brain->setIdentity($identity); if ($board->getNextPlayer() == $identity) { $column = $this->brain->getColumn($board); return new Move($identity, $column); } }
function it_can_handle_a_response_where_it_is_this_clients_turn(Response $response, Board $board, Brain $brain, Player $red, Column $column) { $response->getPlayer()->willReturn($red); $response->getBoard()->willReturn($board); $board->getNextPlayer()->willReturn($red); $brain->getColumn($board)->willReturn($column); $brain->setIdentity($red)->willReturn(null); $move = $this->handle($response); $move->shouldHaveType('Connect4\\Lib\\Move'); $move->getPlayer()->shouldBe($red); $move->getColumn()->shouldBe($column); }