/**
  * @param Questionnaire $questionnaire
  */
 protected function buildDrinkingNarrative(Questionnaire $questionnaire)
 {
     if (DrinkingSpecification::isSatisfiedBy($questionnaire)) {
         $dnb = new DrinkingNarrativeBuilder();
         $narrative = $dnb->buildNarrative($questionnaire);
         $this->narrative->merge($narrative);
     }
 }
 public function testICanGetAnRedNarrativeAsAMaleDrinker()
 {
     $questionnaire = new Questionnaire(new Person());
     $questionnaire->getPerson()->setGender('male');
     $questionnaire->getAboutYou()->getFeelings()->setEnergy(100)->setWeight(20);
     $drinks = new Drinks();
     $drinks->setBeerCiderPintAmount(80)->setSpiritsAmount(30);
     $questionnaire->getDrinking()->setDoYouDrink(Drinking::DOES_DRINK)->setWhichDaysDoYouDrink('mon, tues, wed, thurs, fri, sat, sun')->setWeekdayDrinks($drinks)->setWeekendDrinks($drinks)->setCompletedDate(new \DateTime());
     $expected = array('drinking' => array('drinking_red_min_weight_gt_5_days_male'));
     $this->assertEquals($expected, $this->instance->buildNarrative($questionnaire)->getMessages());
 }