/**
  * @test
  * @dataProvider provideIncrementedProperty
  * @expectedException \DrdPlus\Person\ProfessionLevels\Exceptions\InvalidZeroLevelPropertyValue
  * @param Strength $strength
  * @param Agility $agility
  * @param Knack $knack
  * @param Will $will
  * @param Intelligence $intelligence
  * @param Charisma $charisma
  */
 public function I_can_not_create_it_with_property_increment(Strength $strength, Agility $agility, Knack $knack, Will $will, Intelligence $intelligence, Charisma $charisma)
 {
     $professionZeroLevel = ProfessionZeroLevel::createZeroLevel($commoner = Commoner::getIt());
     $reflection = new \ReflectionClass(ProfessionZeroLevel::class);
     /** @see \DrdPlus\Person\ProfessionLevels\ProfessionLevel::__construct */
     $constructor = $reflection->getMethod('__construct');
     $constructor->setAccessible(true);
     $constructor->invokeArgs($professionZeroLevel, [$commoner, LevelRank::getIt(0), $strength, $agility, $knack, $will, $intelligence, $charisma]);
 }
 /**
  * @return array
  */
 public static function createEntities()
 {
     $professionLevels = new ProfessionLevels(ProfessionZeroLevel::createZeroLevel(Commoner::getIt()), ProfessionFirstLevel::createFirstLevel($profession = Theurgist::getIt()));
     $professionLevels->addLevel(ProfessionNextLevel::createNextLevel($profession, LevelRank::getIt(2), Strength::getIt(1), Agility::getIt(0), Knack::getIt(0), Will::getIt(0), Intelligence::getIt(1), Charisma::getIt(0)));
     return [ProfessionZeroLevel::createZeroLevel(Commoner::getIt()), ProfessionFirstLevel::createFirstLevel(Fighter::getIt()), ProfessionNextLevel::createNextLevel(Wizard::getIt(), LevelRank::getIt(2), Strength::getIt(1), Agility::getIt(1), Knack::getIt(0), Will::getIt(0), Intelligence::getIt(0), Charisma::getIt(0)), $professionLevels];
 }
 private function createPersonEntity(Tables $tables, ExceptionalityPropertiesFactory $exceptionalityPropertiesFactory)
 {
     return new Person(CommonHuman::getIt(), Male::getIt(), Name::getIt('foo'), new Exceptionality(PlayerDecision::getIt(), $fate = FateOfGoodRear::getIt(), $exceptionalityPropertiesFactory->createChosenProperties($fate, $professionFirstLevel = ProfessionFirstLevel::createFirstLevel(Fighter::getIt()), 0, 1, 1, 0, 1, 0)), new Memories(), $professionLevels = new ProfessionLevels(ProfessionZeroLevel::createZeroLevel(Commoner::getIt()), $professionFirstLevel), $background = Background::createIt($fate, 4, 3, 5), Skills::createSkills($professionLevels, $background->getBackgroundSkillPoints(), new PhysicalSkills(ProfessionZeroLevel::createZeroLevel(Commoner::getIt())), new PsychicalSkills(ProfessionZeroLevel::createZeroLevel(Commoner::getIt())), new CombinedSkills(ProfessionZeroLevel::createZeroLevel(Commoner::getIt())), $tables), WeightInKg::getIt(123.45), HeightInCm::getIt(78.89), Age::getIt(56), $tables);
 }