コード例 #1
0
 /**
  * @test
  */
 public function doubleSixCanBePlayedAsFirstMove()
 {
     $shuffler = new StoneShuffler();
     $shuffler->setStoneAtPosition([6, 6], 1);
     $game = (new Dto\GameDetailBuilder())->id(1)->stateStarted()->addPlayer(1, $shuffler->getNext(7))->addPlayer(2, $shuffler->getNext(7))->addPlayer(3, $shuffler->getNext(7))->addPlayer(4, $shuffler->getNext(7))->turn(1, 1)->get();
     $this->expectForGameById(1, $game, null);
     $this->expectForPlay($game->getId(), 1, new Dto\Play(1, new Dto\Stone(6, 6), Dto\Play::SIDE_LEFT));
     $crawler = $this->openPlayerPage(1, 1);
     $this->clickPlayButton($crawler, 1, '6_6-left');
 }
コード例 #2
0
 public function testAfterGameDealAllPlayersHaveSevenStones()
 {
     $gameBeforeDeal = (new Dto\GameDetailBuilder())->id(1)->stateReady()->get();
     $shuffler = new StoneShuffler();
     $gameAfterDeal = (new Dto\GameDetailBuilder())->id(1)->stateStarted()->addPlayer(1, $shuffler->getNext(7))->addPlayer(2, $shuffler->getNext(7))->addPlayer(3, $shuffler->getNext(7))->addPlayer(4, $shuffler->getNext(7))->get();
     $gameDealt = false;
     $this->expectForGameById(1, function () use(&$gameDealt, $gameBeforeDeal, $gameAfterDeal) {
         return $gameDealt ? $gameAfterDeal : $gameBeforeDeal;
     }, null);
     $this->expectForDeal(1, function () use(&$gameDealt) {
         $gameDealt = true;
     });
     $crawler = $this->openGameDetailPage(1);
     $this->clickDealButton($crawler);
     $this->assertContains('7', $crawler->filter('#container .players .player .stone-count')->eq(0)->text());
     $this->assertContains('7', $crawler->filter('#container .players .player .stone-count')->eq(0)->text());
     $this->assertContains('7', $crawler->filter('#container .players .player .stone-count')->eq(0)->text());
     $this->assertContains('7', $crawler->filter('#container .players .player .stone-count')->eq(0)->text());
 }