/** * @dataProvider snakeHeadModulePosition */ public function testFieldIsOccupied($x, $y) { $players = [123456663 => "{'body':[{'x':100,'y':100},{'x':125,'y':100},{'x':150,'y':100}]}", 324234234 => "{'body':[{'x':200,'y':100},{'x':200,'y':125},{'x':200,'y':150}]}"]; $board = $this->getMockBuilder("\\Games\\SnakeBundle\\Utils\\SnakeBoard")->disableOriginalConstructor()->setMethods(array('getPlayers'))->getMock(); $board->expects($this->once())->method('getPlayers')->willReturn($players); $engine = new SnakeBoardEngine(); $this->assertTrue($engine->isOccupied($board, $x, $y), "Field should be occupied by other snake"); }
/** * @dataProvider snakeModulePosition */ public function testBugIsOnField($x, $y, $result) { $bugs = array((object) ["x" => 100, "y" => 100], (object) ["x" => 100, "y" => 200]); $board = $this->getMockBuilder("\\Games\\SnakeBundle\\Utils\\SnakeBoard")->disableOriginalConstructor()->setMethods(array("getBugs", "setBugs"))->getMock(); $board->expects($this->once())->method("getBugs")->willReturn($bugs); $board->expects($this->any())->method("setBugs")->with($this->callback(function ($resultBugs) use($bugs) { return count($bugs) > count($resultBugs); })); $engine = new SnakeBoardEngine(); $this->assertEquals($result, $engine->isBug($board, $x, $y)); }