protected function I_can_create_skill_point_by_first_level_background_skills() { $physicalSkillPoint = PhysicalSkillPoint::createFromFirstLevelBackgroundSkillPoints($level = $this->createProfessionFirstLevel(Fighter::FIGHTER), $backgroundSkillPoints = $this->createBackgroundSkills(123, 'getPhysicalSkillPoints'), new Tables()); self::assertInstanceOf(PhysicalSkillPoint::class, $physicalSkillPoint); self::assertSame(1, $physicalSkillPoint->getValue()); self::assertSame('physical', $physicalSkillPoint->getTypeName()); self::assertSame([Strength::STRENGTH, Agility::AGILITY], $physicalSkillPoint->getRelatedProperties()); self::assertSame($backgroundSkillPoints, $physicalSkillPoint->getBackgroundSkillPoints()); self::assertNull($physicalSkillPoint->getFirstPaidOtherSkillPoint()); self::assertNull($physicalSkillPoint->getSecondPaidOtherSkillPoint()); return [$physicalSkillPoint, $level]; }
private static function createPhysicalSkillEntities(Tables $tables, ProfessionFirstLevel $firstLevel) { $physicalSkillClasses = self::getListOfSkillClasses(PhysicalSkill::class); $physicalSkillPoint = PhysicalSkillPoint::createFromFirstLevelBackgroundSkillPoints($firstLevel, BackgroundSkillPoints::getIt(3, Heritage::getIt(5)), $tables); $requiredRankValue = new PositiveIntegerObject(1); $physicalSkillList = array_map(function ($physicalSkillClass) use($firstLevel, $physicalSkillPoint, $requiredRankValue) { /** @var PhysicalSkill $physicalSkill */ $physicalSkill = new $physicalSkillClass($firstLevel); $physicalSkill->addSkillRank($physicalSkillPoint); return $physicalSkill; }, $physicalSkillClasses); $physicalSkills = new PhysicalSkills(); foreach ($physicalSkillList as $physicalSkill) { $physicalSkills->addPhysicalSkill($physicalSkill); } $physicalSkillPoint = PhysicalSkillPoint::createFromFirstLevelBackgroundSkillPoints($firstLevel, BackgroundSkillPoints::getIt(3, Heritage::getIt(5)), $tables); $physicalSkillRank = new PhysicalSkillRank(new Swimming($firstLevel), PhysicalSkillPoint::createFromFirstLevelBackgroundSkillPoints($firstLevel, BackgroundSkillPoints::getIt(4, Heritage::getIt(5)), $tables), new PositiveIntegerObject(1)); return array_merge($physicalSkillList, [$physicalSkills, $physicalSkillPoint, $physicalSkillRank]); }