/** * @param Questionnaire $questionnaire */ protected function buildGreenDrinkingNarrative(Questionnaire $questionnaire) { switch (true) { case DrinkingBetween3And5DaysWithinSuggestedLimitsSpecification::isSatisfiedBy($questionnaire): $this->narrative->addMessages(self::SECTION_NAME, array('drinking_green_in_gender_limits')); break; case DrinkingIsLTMonthlyAndHasBingeSpecification::isSatisfiedBy($questionnaire): $this->narrative->addMessages(self::SECTION_NAME, array('drinking_green_lt_monthly_with_binge')); break; case DrinkingLessThanMonthlyAndDoesNotBingeSpecification::isSatisfiedBy($questionnaire): $this->narrative->addMessages(self::SECTION_NAME, array('drinking_green_lt_monthly_no_binge')); break; case Drinking2to4TimesAMonthWithBingeSpecification::isSatisfiedBy($questionnaire): $this->narrative->addMessages(self::SECTION_NAME, array('drinking_green_2_to_4_monthly_with_binge')); break; case Drinking2to4TimesAMonthNoBingeSpecification::isSatisfiedBy($questionnaire): $this->narrative->addMessages(self::SECTION_NAME, array('drinking_green_2_to_4_monthly_no_binge')); break; case DrinkingLTE2DaysLTE3UnitsSpecification::isSatisfiedBy($questionnaire): $this->narrative->addMessages(self::SECTION_NAME, array('drinking_green_lt_2_days')); break; default: $this->narrative->addMessages(self::SECTION_NAME, array('drinking_green_never')); break; } }
public function testSpecificationIsTrue() { $questionnaire = new Questionnaire(new Person()); $questionnaire->getDrinking()->setDoYouDrink(Drinking::DRINK_TWO_TO_FOUR_TIMES_A_MONTH)->setBingingFrequency(Drinking::BINGE_NEVER); $this->assertTrue(Drinking2to4TimesAMonthNoBingeSpecification::isSatisfiedBy($questionnaire)); }