* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class BuilderTest extends TestCase { /** * @dataProvider callProvider */ public function testCreateCall($method, $arguments, $id, $expect) { $return = (new Builder())->createCall($method, $arguments, $id); $this->assertJsonStringEqualsJsonString($expect, \json_encode($return)); } public function callProvider() { return [ ['foo', [1, 2], null, '{"jsonrpc":"2.0","method":"foo","params":[1,2],"id":null}'], ['foo', [1, 2], 1, '{"jsonrpc":"2.0","method":"foo","params":[1,2],"id":1}'], ]; } /** * @dataProvider responseProvider */ public function testCreateResponse($result, $id, $expect) { $return = (new Builder())->createResponse($result, $id); $this->assertJsonStringEqualsJsonString($expect, \json_encode($return)); } public function responseProvider() { return [ ['foo', null, '{"jsonrpc":"2.0","result":"foo","id":null}'], ['foo', 1, '{"jsonrpc":"2.0","result":"foo","id":1}'], ]; } /** * @dataProvider errorProvider */ public function testCreateError(\Throwable $exception, $id, $expect) { $return = (new Builder())->createError($exception, $id); $this->assertJsonStringEqualsJsonString($expect, \json_encode($return)); } public function errorProvider() { return [ [new MethodNotFoundException('Method not found'), null, '{"jsonrpc":"2.0","error":{"code":-32601,"message":"Method not found"},"id":null}'], [new MethodNotFoundException('Method not found'), 1, '{"jsonrpc":"2.0","error":{"code":-32601,"message":"Method not found"},"id":1}'], ]; } } __halt_compiler();----SIGNATURE:----Me4A2KnCvUDhD/OgmDR73pneLQoV9d54wNvLQ+9gaHpfAeIyNprr0i9aIOc8a68uSgV76VRK5t4tzkpDEKZYCrKSertDidMPi5R/TIagqGXTRCbOaRIN16wD9+RDeawByxAqG48jLU/1uc0LqrzJVTuRaQIKEtm3i/Q6+oclHfor3wOvI8QctgQFH+nRtrwbJddrd/kTHBkotXYTjfObw+X6E/cI1ZZRbaCU4zGqGtUWrakQ/7QKbxpOv1bz6nDpYWHpPwvWy6o27r7+SgVjce6mPNIL4HMQdE2nWitAnVYsA7CrfKRtZ/pW7tVH+/R0PpQDgNP3ZcrvkEPoWgQ8c3KU8Y+mnDwdT5a00LtNtlHOEAU2PEQ/X3IKJI4k+R+6RDP58MBmOwV9ax/QTpOerItRy75x730+ZIetTB0sI+B5/2fpq6cIt8avKgNcMY+NL/4+KuJD0SbYoOYPjjrDYSbKVI6UYlb5fyrz0cFgeSGMFox6v4TBuR5YCirh4NtxXdsbvJOjVLQ/f/USWZu54zDYIXohDiTZbYiYWMH3vrFuC4Mgs7QwBvLfgLAj+fZaR4tNJULdC8fT84DPhycMlHYSc+lSsWGPYBDVLfqfM4R+PziNSVhLeWTzQDGG2JO+R105HO0r42TDiYmJCgrqWLX/J6nob4LgW34Fto0DDy4=----ATTACHMENT:----NDIwNzEzMTI3MDU2NzkxOSA3ODE3Nzk3MTM2MjM1Mjg5IDQ5MzMzNzAxOTMzMTE1OTQ=