/** * Final level, achieved by sparing current experiences from total zero * * @return Level */ public function getTotalLevel() { return $this->experiencesTable->toTotalLevel($this); }
/** * @test */ public function I_can_create_first_level_from_max_experiences_for_it_but_get_zero_back() { $experiencesTable = new ExperiencesTable(new WoundsTable()); $experiencesForFirstLevel = new Experiences($experiencesValue = 21, $experiencesTable); $levelOfMainProfession = $experiencesTable->toTotalLevel($experiencesForFirstLevel); self::assertSame(1, $levelOfMainProfession->getValue()); self::assertSame(0, $levelOfMainProfession->getExperiences()->getValue()); self::assertSame(0, $levelOfMainProfession->getTotalExperiences()->getValue()); $minimalExperiencesForSecondLevel = new Experiences($experiencesValue + 2, $experiencesTable); $shouldBeSecondLevel = $minimalExperiencesForSecondLevel->getLevel(); self::assertSame(2, $shouldBeSecondLevel->getValue()); self::assertSame($experiencesValue + 1, $shouldBeSecondLevel->getExperiences()->getValue()); self::assertSame($experiencesValue + 1, $shouldBeSecondLevel->getTotalExperiences()->getValue()); }