@@ -74,6 +74,31 @@ public function testBuildsNestedRequest()
7474 $ this ->assertEquals ('{"referenceProp":"reference"} ' , (string ) $ request ->getBody ());
7575 }
7676
77+ public function testBuildsRequestWithObjectQuery ()
78+ {
79+ // assert defining query parameters as arrays is flattened in querystring
80+ $ request = $ this ->builder ->build ('myResource ' , 'myMethod ' , [
81+ 'object ' => ['queryParam ' => 'object-query ' ],
82+ ]);
83+ $ uri = $ request ->getUri ();
84+ $ this ->assertEquals ('object.queryParam=object-query ' , $ uri ->getQuery ());
85+
86+ // assert dot syntax works as well
87+ $ request = $ this ->builder ->build ('myResource ' , 'myMethod ' , [
88+ 'object.queryParam ' => 'object-query-with-dot ' ,
89+ ]);
90+ $ uri = $ request ->getUri ();
91+ $ this ->assertEquals ('object.queryParam=object-query-with-dot ' , $ uri ->getQuery ());
92+
93+ // assert the object syntax takes precedence
94+ $ request = $ this ->builder ->build ('myResource ' , 'myMethod ' , [
95+ 'object ' => ['queryParam ' => 'object-query ' ],
96+ 'object.queryParam ' => 'object-query-with-dot ' ,
97+ ]);
98+ $ uri = $ request ->getUri ();
99+ $ this ->assertEquals ('object.queryParam=object-query ' , $ uri ->getQuery ());
100+ }
101+
77102 public function testBuildsNestedRequestWithStringSplitting ()
78103 {
79104 $ builder = new RequestBuilder (
0 commit comments