@@ -32,24 +32,22 @@ public function testGetServerParams_ReturnsInstanceServerParamsArray()
3232 }
3333
3434 /**
35- * @dataProvider instanceProperties
35+ * @param callable $getValue fn(ServerRequest) => array
3636 *
37- * @param $method
38- * @param $key
39- * @param $params
37+ * @dataProvider instanceProperties
4038 */
41- public function testGetters_ReturnConstructorProperties ($ method , $ params , $ key )
39+ public function testGetters_ReturnConstructorProperties (string $ name , array $ value , callable $ getValue )
4240 {
43- $ this ->assertSame ($ params , $ this ->request ([$ key => $ params ])->{ $ method }( ));
41+ $ this ->assertSame ($ value , $ getValue ( $ this ->request ([$ name => $ value ]) ));
4442 }
4543
46- public function instanceProperties (): array
44+ public static function instanceProperties (): array
4745 {
4846 return [
49- 'cookie ' => ['getCookieParams ' , ['key ' => 'value ' ], ' cookie ' ],
50- 'query ' => ['getQueryParams ' , ['key ' => 'value ' ], ' query ' ],
51- 'pBody ' => ['getParsedBody ' , ['key ' => 'value ' ], ' parsedBody ' ],
52- 'files ' => ['getUploadedFiles ' , ['key ' => new Doubles \FakeUploadedFile ()], ' files ' ]
47+ 'cookie ' => ['cookie ' , ['key ' => 'value ' ], fn ( ServerRequest $ request ) => $ request -> getCookieParams () ],
48+ 'query ' => ['query ' , ['key ' => 'value ' ], fn ( ServerRequest $ request ) => $ request -> getQueryParams () ],
49+ 'pBody ' => ['parsedBody ' , ['key ' => 'value ' ], fn ( ServerRequest $ request ) => $ request -> getParsedBody () ],
50+ 'files ' => ['files ' , ['key ' => new Doubles \FakeUploadedFile ()], fn ( ServerRequest $ request ) => $ request -> getUploadedFiles () ]
5351 ];
5452 }
5553
@@ -69,44 +67,43 @@ public function testGetAttribute_ReturnsDefaultValueIfAttributeNotPresent()
6967 }
7068
7169 /**
72- * @dataProvider mutatorMethods
70+ * @param callable $mutate fn(ServerRequest) => ServerRequest
7371 *
74- * @param $method
75- * @param $params
72+ * @dataProvider mutatorMethods
7673 */
77- public function testMutatorMethods_ReturnNewInstance ($ method , $ params )
74+ public function testMutatorMethods_ReturnNewInstance (callable $ mutate )
7875 {
7976 $ original = $ this ->request ();
80- $ derived1 = $ original ->{ $ method }( $ params );
81- $ derived2 = $ original ->{ $ method }( $ params );
82- $ this ->assertEquals ($ derived1 , $ derived2 );
83- $ this ->assertNotSame ($ derived1 , $ derived2 );
77+ $ derivedA = $ mutate ( $ original );
78+ $ derivedB = $ mutate ( $ original );
79+ $ this ->assertEquals ($ derivedA , $ derivedB );
80+ $ this ->assertNotSame ($ derivedA , $ derivedB );
8481 }
8582
86- public function mutatorMethods (): array
83+ public static function mutatorMethods (): array
8784 {
8885 return [
89- 'cookie ' => [' withCookieParams ' , ['key ' => 'value ' ]],
90- 'query ' => [' withQueryParams ' , ['key ' => 'value ' ]],
91- 'pBody ' => [' withParsedBody ' , ['key ' => 'value ' ]],
92- 'files ' => [' withUploadedFiles ' , ['key ' => new Doubles \FakeUploadedFile ()]]
86+ 'cookie ' => [fn ( ServerRequest $ original ) => $ original -> withCookieParams ( ['key ' => 'value ' ]) ],
87+ 'query ' => [fn ( ServerRequest $ original ) => $ original -> withQueryParams ( ['key ' => 'value ' ]) ],
88+ 'pBody ' => [fn ( ServerRequest $ original ) => $ original -> withParsedBody ( ['key ' => 'value ' ]) ],
89+ 'files ' => [fn ( ServerRequest $ original ) => $ original -> withUploadedFiles ( ['key ' => new Doubles \FakeUploadedFile ()]) ]
9390 ];
9491 }
9592
9693 public function testAttributeMutation_ReturnsNewInstance ()
9794 {
9895 $ original = $ this ->request ();
9996 [$ name , $ value ] = ['name ' , 'value ' ];
100- $ derived1 = $ original ->withAttribute ($ name , $ value );
101- $ derived2 = $ original ->withAttribute ($ name , $ value );
102- $ this ->assertEquals ($ derived1 , $ derived2 );
103- $ this ->assertNotSame ($ derived1 , $ derived2 );
104-
105- $ original = $ derived1 ;
106- $ derived1 = $ original ->withoutAttribute ($ name );
107- $ derived2 = $ original ->withoutAttribute ($ name );
108- $ this ->assertEquals ($ derived1 , $ derived2 );
109- $ this ->assertNotSame ($ derived1 , $ derived2 );
97+ $ derivedA = $ original ->withAttribute ($ name , $ value );
98+ $ derivedB = $ original ->withAttribute ($ name , $ value );
99+ $ this ->assertEquals ($ derivedA , $ derivedB );
100+ $ this ->assertNotSame ($ derivedA , $ derivedB );
101+
102+ $ original = $ derivedA ;
103+ $ derivedA = $ original ->withoutAttribute ($ name );
104+ $ derivedB = $ original ->withoutAttribute ($ name );
105+ $ this ->assertEquals ($ derivedA , $ derivedB );
106+ $ this ->assertNotSame ($ derivedA , $ derivedB );
110107 }
111108
112109 public function testGetParsedBodyForRequestWithoutBody_returnsNull ()
0 commit comments