/**
  * @inheritDoc
  */
 public static function isSatisfiedBy(Questionnaire $questionnaire)
 {
     return DrinkingTwoToFourTimesAMonthSpecification::isSatisfiedBy($questionnaire) && DrinkingHasNoBingeSpecification::isSatisfiedBy($questionnaire);
 }
 /**
  * @param Questionnaire $questionnaire
  * @return bool
  */
 protected function isGreenAsNotWeeklyDrinker(Questionnaire $questionnaire)
 {
     return DrinkingSpec\DrinkingNoneSpecification::isSatisfiedBy($questionnaire) || DrinkingSpec\DrinkingMonthlyOrLessSpecification::isSatisfiedBy($questionnaire) || DrinkingSpec\DrinkingTwoToFourTimesAMonthSpecification::isSatisfiedBy($questionnaire);
 }
 public function testSpecificationIsTrue()
 {
     $questionnaire = new Questionnaire(new Person());
     $questionnaire->getDrinking()->setDoYouDrink(Drinking::DRINK_TWO_TO_FOUR_TIMES_A_MONTH);
     $this->assertTrue(DrinkingTwoToFourTimesAMonthSpecification::isSatisfiedBy($questionnaire));
 }