/** * @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 testSpecificationIsFalse() { $questionnaire = new Questionnaire(new Person()); $questionnaire->getDrinking()->setDoYouDrink(Drinking::DRINK_MONTHLY_OR_LESS)->setBingingFrequency(Drinking::BINGE_MONTHLY); $this->assertFalse(DrinkingLessThanMonthlyAndDoesNotBingeSpecification::isSatisfiedBy($questionnaire)); }