getArray(); $this->assertIsArray($result); $this->assertCount(2, $result); if (isset($result[1])) { $error = $result[1]; $this->assertIsArray($error); $this->assertCount(3, $error); $this->assertArrayHasKey('error', $error); $this->assertArrayHasKey('error_description', $error); $this->assertArrayHasKey('debug', $error); $this->assertEquals('missing_state', $error['error']); $this->assertEquals('The state is missing', $error['error_description']); $this->assertEquals('debug information', $error['debug']); } } public function testValidateState() { $expected_state = 'example_state'; $params = ['state' => $expected_state]; $response = Client::validateStateMatch($params, $expected_state); $this->assertNull($response); } public function testValidateStateCase() { $params = ['state' => 'example_state']; $response = Client::validateStateMatch($params, 'Example_State'); $this->assertInstanceOf(ErrorResponse::class, $response); } public function testValidateStateMissing() { $params = []; $response = Client::validateStateMatch($params, 'state'); $this->assertInstanceOf(ErrorResponse::class, $response); } public function testValidateStateMismatch() { $params = ['state' => 'example_state']; $response = Client::validateStateMatch($params, 'unexpected_state'); $this->assertInstanceOf(ErrorResponse::class, $response); } public function testValidateIssuer() { $expected_issuer = 'https://issuer.example.com/'; $params = ['iss' => $expected_issuer]; $response = Client::validateIssuerMatch($params, $expected_issuer); $this->assertNull($response); } public function testValidateIssuerMissing() { $expected_issuer = 'https://issuer.example.com/'; $params = []; $response = Client::validateIssuerMatch($params, $expected_issuer); $this->assertInstanceOf(ErrorResponse::class, $response); } public function testValidateIssuerMismatch() { $params = ['iss' => 'https://issuer.example.com/']; $response = Client::validateIssuerMatch($params, 'https://example.org/'); $this->assertInstanceOf(ErrorResponse::class, $response); } }__halt_compiler();----SIGNATURE:----S/AQTnMofc/J8ZhZP1nM5Z9Lz8W/NIUSFODcSxfrXA7lHZ1MaQS3etdplXylXsg/93Ml7h8gyVEEwPh9Nq3GZXiwFWZzZxB4EdohT2cuHup9Y7ioSqNaAnzmRHqLdZrBKMKn/hlukbsM+1M1XKDroPJvvVagtpysZF2GqiaCJLopKcxMS77OzYxy4YrQKpcHltzhWaOXzYViC38Q20c7WGM9KDH0AvGzRy9+Q6dybVKqsSDPCMXoo+RIrw1pMOvkKdLn+varI98tf00P/VAzBUZwoa5BRuF38SEYqFx9CxGFJaNZXIJhc8YIIi/EDwfWNNlM86KzOPJp7vOgc16Zl0KohBfvY9rK7R9FNE/iKEiQnXUPQfe2iWzXiMq+ewmq2A0A4ylux/tmYrPa4B8e78ia9YfIaGVDs/mq93GBMrufiDywdgC34rZ42YmVpGP2NHPYL/cOGRECcUUgolYFXaG2rBV557QLV8UyVXkeZHNRuW7bOMuNpqDmC+yONsRqPm0f9dTBJ5juU3FVTqR+iC2SXjYcCyoCxhoThBViiIgNS/SMSbJwH0PgfU9abOlvBXCri0W3K0gHlu6b35kZRrqR6cW2EX2MBAS5KHUVJR+M/dGI9vA4tb8jXCczLpMJYKIBAFBTv10M7OxBRqjk7z+JuTuqwZ9TegqDnzOEZy4=----ATTACHMENT:----NjQ3MzA3ODQwOTQxNDM0NCA0NzQ2NzM5Njk4NjI2NjU4IDk5MDUxNjM1MTgxNjcwMzI=