<?php namespace MapGuesser\Tests\Util; use MapGuesser\Util\UsernameGenerator; use PHPUnit\Framework\TestCase; final class UsernameGeneratorTest extends TestCase { public function testCanGenerateRandomUsernameFromComponents(): void { $generator = new UsernameGenerator(); $parts = $this->getUsernameParts($generator->generate()); $this->assertEquals(3, count($parts)); $this->assertContains($parts[0], UsernameGenerator::ADJECTIVES); $this->assertContains($parts[1], UsernameGenerator::ADJECTIVES); $this->assertContains($parts[2], UsernameGenerator::NOUNS); } private function getUsernameParts(string $username): array { return explode('-', strtolower(preg_replace('/([a-z])([A-Z])/', '$1-$2', $username))); } }