first_name = $first; $user->last_name = $last; $user->nickname = $nickname; return $user; } public function testPrefersFirstAndLastName(): void { self::assertSame('Ada Lovelace', UserName::format($this->user('Ada', 'Lovelace', 'ada_login'))); } public function testUsesFirstNameAloneWhenLastNameMissing(): void { self::assertSame('Ada', UserName::format($this->user('Ada', '', 'ada_login'))); } public function testFallsBackToNicknameWhenNoRealName(): void { self::assertSame('Countess', UserName::format($this->user('', '', 'Countess'))); } public function testFallsBackToIdWhenNothingSet(): void { self::assertSame('42', UserName::format($this->user('', '', ''), 42)); } public function testReturnsFallbackIdWhenUserMissing(): void { self::assertSame('42', UserName::format(null, 42)); self::assertSame('', UserName::format(null)); } }