/** * @test */ public function I_got_everything_empty_or_zeroed_from_empty_new_levels() { $professionLevels = new ProfessionLevels($zeroLevel = $this->createZeroLevel(), $firstLevel = $this->createFirstLevel(Fighter::FIGHTER)); self::assertSame(0, $professionLevels->getNextLevelsStrengthModifier()); self::assertSame(0, $professionLevels->getNextLevelsPropertyModifier(Strength::STRENGTH)); self::assertSame(0, $professionLevels->getNextLevelsAgilityModifier()); self::assertSame(0, $professionLevels->getNextLevelsPropertyModifier(Agility::AGILITY)); self::assertSame(0, $professionLevels->getNextLevelsKnackModifier()); self::assertSame(0, $professionLevels->getNextLevelsPropertyModifier(Knack::KNACK)); self::assertSame(0, $professionLevels->getNextLevelsWillModifier()); self::assertSame(0, $professionLevels->getNextLevelsPropertyModifier(Will::WILL)); self::assertSame(0, $professionLevels->getNextLevelsIntelligenceModifier()); self::assertSame(0, $professionLevels->getNextLevelsPropertyModifier(Intelligence::INTELLIGENCE)); self::assertSame(0, $professionLevels->getNextLevelsCharismaModifier()); self::assertSame(0, $professionLevels->getNextLevelsPropertyModifier(Charisma::CHARISMA)); self::assertCount(0, $professionLevels->getProfessionNextLevels()); self::assertEquals([$zeroLevel, $firstLevel], $professionLevels->getSortedProfessionLevels()); $levelsFromIteration = []; foreach ($professionLevels as $professionLevel) { $levelsFromIteration[] = $professionLevel; } self::assertEquals($levelsFromIteration, $professionLevels->getSortedProfessionLevels()); self::assertNull($professionLevels->getId()); }
/** * @test * @dataProvider provideProfessionLevelsWithTooLowPropertyIncrease * @expectedException \DrdPlus\Skills\Exceptions\HigherSkillRanksFromNextLevelsThanPossible * @param ProfessionLevels $professionLevels */ public function I_can_not_increase_skills_by_next_levels_more_than_provides_property_increments(ProfessionLevels $professionLevels) { $nextLevel = $professionLevels->getProfessionNextLevels()->last(); $physicalSkills = $this->createPhysicalSkillsByNextLevelPropertyIncrease($nextLevel); $psychicalSkills = $this->createPsychicalSkillsByNextLevelPropertyIncrease($nextLevel); $combinedSkills = $this->createCombinedSkillsByNextLevelPropertyIncrease($nextLevel); $backgroundSkillPoints = $this->createBackgroundSkillPoints($professionLevels->getFirstLevel()->getProfession()); Skills::createSkills($professionLevels, $backgroundSkillPoints, new Tables(), $physicalSkills, $psychicalSkills, $combinedSkills); }