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]);
 }
 /**
  * @test
  */
 public function I_can_get_malus_to_fight_for_shield()
 {
     $skills = new PhysicalSkills();
     $armourer = $this->mockery(Armourer::class);
     $shield = $this->mockery(ShieldCode::class);
     $armourer->shouldReceive('getProtectiveArmamentRestrictionForSkill')->andReturnUsing(function (ShieldCode $givenShield, PositiveInteger $rank) use($shield) {
         self::assertSame($givenShield, $shield);
         self::assertSame(0, $rank->getValue());
         return 'foo';
     });
     self::assertSame($expectedMalus = 'foo', $skills->getMalusToFightNumberWithProtective($shield, $armourer));
 }