/** * @param \GameDomain\Round\Step\Answer $playerAnswer * @param int $number * * @return bool */ public final function isSatisfiedBy(Answer $playerAnswer, $number) { try { return $playerAnswer->isSameAs($this->generateValidAnswer($number)); } catch (IrrelevantRuleException $exception) { return false; } }
/** * @dataProvider getStepResults * * @param \GameDomain\Player\PlayerInterface $player * @param \GameDomain\Round\Step\Answer $playerAnswer * @param \GameDomain\Round\Step\Answer $validAnswer * @param \GameDomain\Round\Step\Step $step * @param string $expectedStringRepresentation */ public function testIsValid(PlayerInterface $player, Answer $playerAnswer, Answer $validAnswer, Step $step, $expectedStringRepresentation) { $stepResult = new StepResult($player, $playerAnswer, $validAnswer, $step); // Tests for methods having logic $this->assertEquals($playerAnswer->isSameAs($validAnswer), $stepResult->isValid()); $this->assertEquals($expectedStringRepresentation, (string) $stepResult); // Tests for getters $this->assertInstanceOf('\\GameDomain\\Player\\PlayerInterface', $stepResult->getPlayer()); $this->assertInstanceOf('\\GameDomain\\Round\\Step\\Step', $stepResult->getStep()); $this->assertInstanceOf('\\GameDomain\\Round\\Step\\Answer', $stepResult->getPlayerAnswer()); $this->assertInstanceOf('\\GameDomain\\Round\\Step\\Answer', $stepResult->getValidAnswer()); }
/** * @return bool */ public function isValid() { return $this->playerAnswer->isSameAs($this->validAnswer); }