public function testGetSetWineAmount()
 {
     $expected = PHP_INT_MAX;
     $this->assertEmpty($this->instance->getWineAmount());
     $this->assertInstanceOf(Drinks::class, $this->instance->setWineAmount($expected));
     $this->assertEquals($expected, $this->instance->getWineAmount());
 }
 public function testIGetAnAmberMaleDrinkingMessage()
 {
     $expected = array('results' => array('headline' => "score_headline_6", 'intro' => "score_headline_intro", 'overview' => "score_about_you_amber_neutral_total_amber", 'behaviours_headline' => "score_behaviour_results_amber_headline", 'behaviours_body' => "score_behaviour_results_amber_body", 'smoking' => "behaviours_smoking_green", 'drinking' => "behaviours_drinking_amber_gt_14_units_lte_5_days_male", 'moving' => "behaviours_moving_red_no_strength", 'eating' => "behaviours_eating_green"));
     $questionnaire = new Questionnaire(new Person());
     $questionnaire->getPerson()->setGender('male');
     $questionnaire->getMoving()->setCompletedDate(new \DateTime());
     $questionnaire->getEating()->setCompletedDate(new \DateTime());
     $drinks = new Drinks();
     $drinks->setBeerCiderPintAmount(2)->setBeerCiderBottleAmount(3)->setWineAmount(1)->setSpiritsAmount(2);
     $questionnaire->getDrinking()->setWeekdayDrinks($drinks)->setWeekendDrinks($drinks)->setWhichDaysDoYouDrink('mon, sat, sun')->setDoYouDrink(Drinking::DOES_DRINK)->setCompletedDate(new \DateTime());
     $questionnaire->getSmoking()->setCompletedDate(new \DateTime());
     $this->assertEquals($expected, $this->instance->buildNarrative($questionnaire)->getMessages());
 }
 public function testIfIAmFemaleAndIHaveMoreThanPrescribedUnitsMyScoreIsRed()
 {
     $person = new Person();
     $person->setGender(Person::GENDER_FEMALE);
     $questionnaire = new Questionnaire($person);
     $drinking = $questionnaire->getDrinking();
     $drinking->setWhichDaysDoYouDrink('mon, tues, wed, thurs, fri');
     $wDrinks = new Drinks();
     $wDrinks->setWineAmount(5);
     $drinking->setWeekdayDrinks($wDrinks)->setWeekendDrinks(new Drinks())->setCompletedDate(new \DateTime())->setDoYouDrink(Drinking::DOES_DRINK);
     $questionnaire->setDrinking($drinking);
     $rag = $this->instance->calculateScore($questionnaire);
     $this->assertEquals(DrinkingScore::RAG_RED, $rag['rag']);
     $this->assertEquals(DrinkingScore::SCORE_RED, $rag['value']);
 }
 public function setUp()
 {
     $this->builder = new NarrativeBuilder();
     $person = new Person();
     $person->setGender('male')->setAge('40')->setFirstName(uniqid('FN_'));
     $this->questionnaire = new Questionnaire($person);
     $this->questionnaire->getAboutYou()->setCompletedDate(new \DateTime());
     $this->questionnaire->getAboutYou()->getFeelings()->setEnergy(30)->setFatigue(30)->setMood(30)->setFitness(30)->setStress(30)->setWeight(0)->setCompletedDate(new \DateTime());
     $this->questionnaire->getEating()->setDrinksChoice('water')->setBreakfastChoice('other')->setCheeseChoice('other')->setProteinChoice('5')->setFruitAndVegChoice('5')->setPotatoesChoice('other')->setDailySnackChoice('')->setCompletedDate(new \DateTime());
     $this->questionnaire->getSmoking()->setDoYouSmoke('no')->setCompletedDate(new \DateTime());
     $drinks = new Drinks();
     $drinks->setBeerCiderPintAmount(2);
     $this->questionnaire->getDrinking()->setDoYouDrink(Drinking::DOES_DRINK)->setWeekdayDrinks($drinks)->setWeekendDrinks($drinks)->setWhichDaysDoYouDrink('mon,  wed, fri, sun')->setCompletedDate(new \DateTime());
     $this->questionnaire->getMoving()->setCompletedDate(new \DateTime());
 }
 public function setUp()
 {
     $this->builder = new NarrativeBuilder();
     $person = new Person();
     $person->setGender('female')->setAge('40')->setFirstName(uniqid('FN_'));
     $this->questionnaire = new Questionnaire($person);
     $this->questionnaire->getAboutYou()->setCompletedDate(new \DateTime());
     $this->questionnaire->getAboutYou()->getFeelings()->setWeight(0)->setCompletedDate(new \DateTime());
     $this->questionnaire->getEating()->setDrinksChoice('sugary drink')->setBreakfastChoice('sugary cereals')->setCheeseChoice('hard cheese')->setProteinChoice('ham')->setFruitAndVegChoice('0')->setPotatoesChoice('chips')->setDailySnackChoice('cake, biscuits, crisps, sweets')->setCompletedDate(new \DateTime());
     $this->questionnaire->getSmoking()->setDoYouSmoke('yes')->setCompletedDate(new \DateTime());
     $drinks = new Drinks();
     $drinks->setBeerCiderPintAmount(5)->setWineAmount(3)->setSpiritsAmount(5)->setCompletedDate(new \DateTime());
     $this->questionnaire->getDrinking()->setDoYouDrink(Drinking::DOES_DRINK)->setWhichDaysDoYouDrink('mon, tue, wed, thur, fri, sat, sun')->setWeekendDrinks($drinks)->setWeekdayDrinks($drinks)->setCompletedDate(new \DateTime());
     $this->questionnaire->getMoving()->setCompletedDate(new \DateTime());
 }
 /**
  * @param ParamFetcher $paramFetcher
  * @param Drinks       $drinks
  * @param int          $drinksType
  * @return Drinks
  */
 protected function createDrinks(ParamFetcher $paramFetcher, Drinks $drinks, $drinksType = Drinks::DRINKS_TYPE_WEEKDAY)
 {
     switch ($drinksType) {
         case Drinks::DRINKS_TYPE_WEEKDAY:
             $prefix = 'week';
             break;
         case Drinks::DRINKS_TYPE_WEEKEND:
             $prefix = 'weekend';
             break;
         default:
             $prefix = 'occasional';
             break;
     }
     $drinks->setBeerCiderPintAmount($paramFetcher->get("{$prefix}_pint_amount"))->setBeerCiderBottleAmount($paramFetcher->get("{$prefix}_bottle_amount"))->setSpiritsAmount($paramFetcher->get("{$prefix}_spirit_amount"))->setWineAmount($paramFetcher->get("{$prefix}_wine_amount"))->setCompletedDate(new \DateTime());
     return $drinks;
 }
 /**
  * @param Drinks $drinks
  * @param string $prefix
  * @return array
  */
 protected static function extractDrinksForExport(Drinks $drinks, $prefix = 'weekday')
 {
     return array("{$prefix}DrinksBeerCiderPintAmount" => $drinks->getBeerCiderPintAmount(), "{$prefix}DrinksBeerCiderBottleAmount" => $drinks->getBeerCiderBottleAmount(), "{$prefix}DrinksWineAmount" => $drinks->getWineAmount(), "{$prefix}DrinksSpiritsPintAmount" => $drinks->getSpiritsAmount(), "{$prefix}DrinksCompleted" => $drinks->isCompleted());
 }
 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());
 }