public function testSpecificationIsFalseAndIAmMale()
 {
     $questionnaire = new Questionnaire((new Person())->setGender(Person::GENDER_MALE));
     $drinks = (new Drinks())->setBeerCiderPintAmount(3);
     $questionnaire->getDrinking()->setDoYouDrink(Drinking::DOES_DRINK)->setWhichDaysDoYouDrink('mon, tue, wed')->setWeekdayDrinks($drinks);
     $this->assertFalse(DrinkingUnitsInLowerRiskForGenderSpecification::isSatisfiedBy($questionnaire));
 }
 /**
  * @inheritDoc
  */
 public static function isSatisfiedBy(Questionnaire $questionnaire)
 {
     return DrinkingDaysGTFiveSpecification::isSatisfiedBy($questionnaire) && DrinkingUnitsInLowerRiskForGenderSpecification::isSatisfiedBy($questionnaire);
 }
 /**
  * @inheritDoc
  */
 public static function isSatisfiedBy(Questionnaire $questionnaire)
 {
     return DrinkingDaysGTE3AndLTE5Specification::isSatisfiedBy($questionnaire) && DrinkingUnitsInLowerRiskForGenderSpecification::isSatisfiedBy($questionnaire) && DrinkingExceedsDailyLimitsForGenderSpecification::isSatisfiedBy($questionnaire);
 }
 /**
  * @param Questionnaire $questionnaire
  * @return bool
  */
 protected function ragIsAmber(Questionnaire $questionnaire)
 {
     switch (true) {
         case $this->isAmberDueToDaysGTE5AndLowerRiskGender($questionnaire):
         case DrinkingSpec\DrinkingDoesNotExceed14UnitsAWeekButHasBingedSpecification::isSatisfiedBy($questionnaire):
         case $this->isAmberDueToDayExceedsRiskUnits($questionnaire):
         case $this->isAmberDueToMoreThanThreeUnitsAndTwoOrFewerDays($questionnaire):
         case DrinkingSpec\DrinkingExceeds5DaysButNot14UnitsSpecification::isSatisfiedBy($questionnaire):
         case DrinkingSpec\DrinkingUnitsInLowerRiskForGenderSpecification::isSatisfiedBy($questionnaire):
             return true;
         default:
             return false;
     }
 }