コード例 #1
0
 /**
  * @param Request       $request
  * @param FormInterface $form
  * @param GameDetailDto $game
  * @param PlayerDto     $player
  *
  * @return Response|null
  */
 private function handlePlayerForm(Request $request, FormInterface $form, GameDetail $game, Player $player)
 {
     $form->handleRequest($request);
     if ($form->isSubmitted() && $form->isValid()) {
         if ($form->get('play')->isClicked()) {
             $turnNumber = $form->getData()->getTurnNumber();
             $move = $form->getData()->getMove();
             if ($move && $move->isPlay()) {
                 $play = new Play($turnNumber, new Stone($move->getStoneTopValue(), $move->getStoneBottomValue()), $move->getSide() === 'left' ? Play::SIDE_LEFT : Play::SIDE_RIGHT);
                 $this->gameService->play($game->getId(), $player->getNumber(), $play);
                 return $this->redirectToRoute(self::ROUTE_PLAYER_DETAIL, ['gameId' => $form->getData()->getGameId(), 'playerNumber' => $form->getData()->getPlayerNumber()]);
             }
         }
     }
     return;
 }
コード例 #2
0
 public function testPlayCallsPlayOnPlayer()
 {
     $game = $this->createGameMock(42);
     $player = $this->createPlayerMock($game, 1, 'player 1');
     $this->gameRepositoryMock->expects($this->once())->method('findById')->with($this->identicalTo(42))->willReturn($game);
     $game->expects($this->any())->method('getPlayerByPlayerNumber')->with($this->equalTo(3))->willReturn($player);
     $player->expects($this->once())->method('play')->with($this->equalToPlay(new Domain\Play(1, new Domain\Stone(6, 6), Domain\Table::SIDE_LEFT)));
     $turnNumber = 1;
     $playerNumber = 3;
     $play = new Dto\Play($turnNumber, new Dto\Stone(6, 6), Dto\Play::SIDE_LEFT);
     $this->gameService->play(42, $playerNumber, $play);
 }