public function testSpecificationIsFalse()
 {
     $questionnaire = new Questionnaire((new Person())->setGender(Person::GENDER_FEMALE));
     $questionnaire->getDrinking()->setWhichDaysDoYouDrink('mon');
     $questionnaire->getDrinking()->getWeekdayDrinks()->setSpiritsAmount(8);
     $this->assertFalse(DrinkingDoesNotExceedDailyLimitsForGenderSpecification::isSatisfiedBy($questionnaire));
 }
 /**
  * @inheritDoc
  */
 public static function isSatisfiedBy(Questionnaire $questionnaire)
 {
     return DrinkingDaysLTE2Specification::isSatisfiedBy($questionnaire) && DrinkingExceedsThreeUnitsSpecification::isSatisfiedBy($questionnaire) && DrinkingDoesNotExceed14UnitsAWeekSpecification::isSatisfiedBy($questionnaire) && DrinkingDoesNotExceedDailyLimitsForGenderSpecification::isSatisfiedBy($questionnaire);
 }
 /**
  * @inheritDoc
  */
 public static function isSatisfiedBy(Questionnaire $questionnaire)
 {
     return $questionnaire->getDrinking()->getBingingFrequency() === Drinking::BINGE_NEVER || DrinkingDoesNotExceedDailyLimitsForGenderSpecification::isSatisfiedBy($questionnaire);
 }
 /**
  * @JMS\VirtualProperty
  * @JMS\SerializedName("display_binge_question")
  *
  * Display if no days >= gender max units on weekly and occasional
  * @return bool
  * @JMS\Groups({"api_response"})
  */
 public function displayBingeQuestion()
 {
     return DrinkingDoesNotExceedDailyLimitsForGenderSpecification::isSatisfiedBy($this->questionnaire);
 }