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:----Sicab2g5yPNF5DNptN6g58AJJhqysuD21jOEPrn7aSKKSvIxtudJnUX0dEcu3KIv19i8yq8NJp9Rthl7URutPuLdTY/4dCqOZyfRKzweeMEA8EJm7vIK70IDLgjpFBPHHRK+/hzheER3DOQDTV1/9F9j/38Yxo0Ibn3QtGax1+sGu4PqedPLdszY1v2mBi1i3FzswqfdgzeCFnvErlgUQZzFgO6lTQHLG+J4EKP0TjrJEhRzfeH2mYaN0LkMsTVcFGt5/vLVprzzw4NBdAd0t2wFY//vmBRUK3HpY663KMsfX/B6hF0DMlnDsEO9flS21IpZYXCGiVreoSGhyigWeYHHBujboELITZ7MX2xg6oiW+PsA3yfg260jahK0WhRuxh0At5DfTllSkGN+x5GZ9JUnEMnB4+1JZ/OjtN4NS8c1yUZhiNnID5UtpVlXFhmOeSWxdjMDIP1RrZdi6eiJUBXFmMthImSbV3O9Qj2GZkiHGMPNDNGRCGB04wnLUZRbODWgQtD6NO4DH2kIv+0wz9pjDJs5qaehNU1U2MMvZy7v2Vs80GL3UjM5j4YFcbSc/h9mLvo1xFzbPFuKr15Fg85fvXy8qQo7OVzjRIndi6rvwyQ+OlkvrcM0/BiXinvonWvnXfYHBuZ/qLcHPUwVI1E5yELGkiVNEtQouecQY80=----ATTACHMENT:----NzA2MzYxNzU2OTIzNzAwMiA5MDMwODI2NTY5NjI5NDMwIDMyNzI2ODAzODM3MTIzMDU=