withId(123) ->withProcedure('foobar') ->withParams(array(1, 2, 3)) ->build(); $this->assertEquals('{"jsonrpc":"2.0","method":"foobar","id":123,"params":[1,2,3]}', $payload); } public function testBuilderWithoutParams() { $payload = RequestBuilder::create() ->withId(123) ->withProcedure('foobar') ->build(); $this->assertEquals('{"jsonrpc":"2.0","method":"foobar","id":123}', $payload); } public function testBuilderWithoutId() { $payload = RequestBuilder::create() ->withProcedure('foobar') ->withParams(array(1, 2, 3)) ->build(); $result = json_decode($payload, true); $this->assertNotNull($result['id']); } public function testBuilderWithAdditionalRequestAttributes() { $payload = RequestBuilder::create() ->withProcedure('foobar') ->withParams(array(1, 2, 3)) ->withRequestAttributes(array("some-attr" => 42)) ->build(); $result = json_decode($payload, true); $this->assertNotNull($result['some-attr']); } }