/** * @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'); }
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()); }