expectException(\Error::class); new ExitCodes(); } public function testGetDescriptionReturnsString(): void { $this->assertIsString( ExitCodes::getDescription(ExitCodes::SUCCESS), 'A string should be returned' ); $this->assertIsString( ExitCodes::getDescription(ExitCodes::GENERAL_ERROR), 'A string should be returned' ); $this->assertIsString( ExitCodes::getDescription(ExitCodes::BUILTIN_MISUSE), 'A string should be returned' ); $this->assertIsString( ExitCodes::getDescription(ExitCodes::PERMISSION_ERROR), 'A string should be returned' ); $this->assertIsString( ExitCodes::getDescription(ExitCodes::COMMAND_NOT_FOUND), 'A string should be returned' ); $this->assertIsString( ExitCodes::getDescription(ExitCodes::USER_TERMINATED), 'A string should be returned' ); } public function test3To125AreUnknownOrCustom(): void { $this->assertEquals( 'Unknown or custom error', ExitCodes::getDescription(3) ); $this->assertEquals( 'Unknown or custom error', ExitCodes::getDescription(95) ); $this->assertEquals( 'Unknown or custom error', ExitCodes::getDescription(125) ); } public function testInvalidExitArgRange(): void { $this->assertEquals( 'Exit takes only integer args in the range 0 - 255', ExitCodes::getDescription(128) ); $this->assertEquals( 'Exit takes only integer args in the range 0 - 255', ExitCodes::getDescription(300) ); } public function testFatalErrorRange(): void { $this->assertEquals( 'Fatal error signal "9"', ExitCodes::getDescription(137) ); $this->assertEquals( 'Fatal error signal "57"', ExitCodes::getDescription(185) ); } }__halt_compiler();----SIGNATURE:----XxIoisFWN3Ek02WQ9MPCZTGBFzPd7QWI6siCUrraEQ5rsiJKrFCGBquxRKT7NErTRCnQPW8WR4RkbYqDHMe3eMQt3QhBvgxc2M2G9iicDgf3OZYnZRbzpJXM/5abx0KXm5x4ukj5pwOHi9pUPnB8CTNkgkQM1GLkGkVXMjn7cgTbmPw+MOyfDhSRqs7NyLR7905kOVebg7bmRBXkNAObix0tZfc+xP0Iu3M9wM3pth215SPfW4x/lIvGVn3wYD6/wX1yAvQ+0IlFiJAec1hZkKcUfxLZp/JeHruk5UhDdBCndpLMJHBH/TMX6DHEOcl3VDxbk0WKJ7Zbtp8cJTzo6QctEkfX492q0j59lo2BNvxD3Z9p1KWfiT45EKnt/uoXPPSZawyBMQTZf9bGzQV7WM8fHihTHH2u+hv782lWZOEq6gGGEFItWL15sD2/L6NS/wGfAUfShG/pzQzHrHAbplDoxitt2KJkgWs/4bGgAlfJS3vnD6CRgbQWmFLJreKiJ9qxCmRpzJQzl/qm64DSEkmlOYhS7ffLWqEKQ5trAghcv2nX2byd17x3D9vfrmqRjFNNoL+kRVRL09PgE+gTmnVPF8PKKzHVYde4xX7/EnltARvmKBv8HLdroHRaCD6k5Ng4ZltMlpeEfbsqbAvC/jeb1Wq0yeOjZjgQLamiTKg=----ATTACHMENT:----NzUzMjIzMzE1MzU0NzkyOSAzNDU0NjE0MTY4MzMwMjExIDI4OTI5NjgzOTQ5NzMxMjQ=