/** * @param Questionnaire $questionnaire * @return int */ protected function calculateAerobicRag(Questionnaire $questionnaire) { if (AerobicIsGreenSpecification::isSatisfiedBy($questionnaire)) { return self::SCORE_GREEN; } elseif (AerobicIsRedSpecification::isSatisfiedBy($questionnaire)) { return self::SCORE_RED; } return self::SCORE_AMBER; }
public function testIHave150MinutesAnd3OrMoreDaysIAmAerobicGreen() { $aerobic = array('mon' => 50, 'tue' => 50, 'wed' => 50); $questionnaire = new Questionnaire(new Person()); $moving = $questionnaire->getMoving(); $moving->setAerobicActivityDays($aerobic)->setCompletedDate(new \DateTime()); $questionnaire->setMoving($moving); $this->assertTrue(AerobicIsGreenSpecification::isSatisfiedBy($questionnaire)); }
public function testIHave60OrMoreMinutesAndLessThanTwoDaysIAmAerobicAmber() { $aerobic = array('mon' => 50, 'wed' => 40); $questionnaire = new Questionnaire(new Person()); $moving = $questionnaire->getMoving(); $moving->setAerobicActivityDays($aerobic)->setCompletedDate(new \DateTime()); $questionnaire->setMoving($moving); $this->assertFalse(AerobicIsGreenSpecification::isSatisfiedBy($questionnaire)); $this->assertFalse(AerobicIsRedSpecification::isSatisfiedBy($questionnaire)); }
/** * @inheritDoc */ public static function isSatisfiedBy(Questionnaire $questionnaire) { return AerobicIsGreenSpecification::isSatisfiedBy($questionnaire) && StrengtheningIsRedSpecification::isSatisfiedBy($questionnaire); }