get(SeedCharactersCommand::class); $validator = self::getContainer()->get(ValidatorInterface::class); $sheets = (new \ReflectionMethod($command, 'sheets'))->invoke($command); $hydrate = new \ReflectionMethod($command, 'hydrate'); $names = array_column($sheets, 'name'); self::assertSame(['Darragh Fermwyr', 'Owayn Fermwyr', 'Dunnchadh'], $names); foreach ($sheets as $row) { /** @var Character $c */ $c = $hydrate->invoke($command, $row); $violations = $validator->validate($c); self::assertCount(0, $violations, $row['name'].': '.$violations); foreach ($c->getSkillProficiencies() as $skill) { self::assertArrayHasKey($skill, Character::SKILLS, $row['name']); } foreach ($c->getSavingThrowProficiencies() as $ability) { self::assertContains($ability, Character::ABILITIES, $row['name']); } } } }