public function testGetSetSpiritsAmount()
 {
     $expected = PHP_INT_MAX;
     $this->assertEmpty($this->instance->getSpiritsAmount());
     $this->assertInstanceOf(Drinks::class, $this->instance->setSpiritsAmount($expected));
     $this->assertEquals($expected, $this->instance->getSpiritsAmount());
 }
 public function testCalculationOfUnits()
 {
     $expected = 5 * DrinkingScore::DRINK_UNITS_WINE * 5 + 5 * DrinkingScore::DRINK_UNITS_SPIRIT * 2;
     $expected += 2 * DrinkingScore::DRINK_UNITS_PINT * 4;
     $person = new Person();
     $person->setGender(Person::GENDER_FEMALE);
     $questionnaire = new Questionnaire($person);
     $drinking = $questionnaire->getDrinking();
     $drinking->setWhichDaysDoYouDrink('mon, tues, wed, thurs, fri, sat, sun');
     $drinking->setDoYouDrink(Drinking::DOES_DRINK);
     $wDrinks = new Drinks();
     $wDrinks->setWineAmount(5);
     $wDrinks->setSpiritsAmount(2);
     $weDrinks = new Drinks();
     $weDrinks->setBeerCiderPintAmount(4);
     $drinking->setWeekdayDrinks($wDrinks)->setWeekendDrinks($weDrinks);
     $this->assertEquals((int) $expected, $this->instance->calculateUnits($drinking));
 }
 public function testICanGetAnAmberNarrativeAsADailyDrinkerAndIDoNotExceed14Units()
 {
     $questionnaire = new Questionnaire(new Person());
     $questionnaire->getPerson()->setGender('male');
     $questionnaire->getAboutYou()->getFeelings()->setEnergy(100)->setWeight(21);
     $drinks = new Drinks();
     $drinks->setSpiritsAmount(1);
     $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_amber_low_weight_lte_14_units_gte_6_days_male'));
     $this->assertEquals($expected, $this->instance->buildNarrative($questionnaire)->getMessages());
 }