@@ -32,24 +32,22 @@ public function testGetServerParams_ReturnsInstanceServerParamsArray()
32
32
}
33
33
34
34
/**
35
- * @dataProvider instanceProperties
35
+ * @param callable $getValue fn(ServerRequest) => array
36
36
*
37
- * @param $method
38
- * @param $key
39
- * @param $params
37
+ * @dataProvider instanceProperties
40
38
*/
41
- public function testGetters_ReturnConstructorProperties ($ method , $ params , $ key )
39
+ public function testGetters_ReturnConstructorProperties (string $ name , array $ value , callable $ getValue )
42
40
{
43
- $ this ->assertSame ($ params , $ this ->request ([$ key => $ params ])->{ $ method }( ));
41
+ $ this ->assertSame ($ value , $ getValue ( $ this ->request ([$ name => $ value ]) ));
44
42
}
45
43
46
- public function instanceProperties (): array
44
+ public static function instanceProperties (): array
47
45
{
48
46
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 () ]
53
51
];
54
52
}
55
53
@@ -69,44 +67,43 @@ public function testGetAttribute_ReturnsDefaultValueIfAttributeNotPresent()
69
67
}
70
68
71
69
/**
72
- * @dataProvider mutatorMethods
70
+ * @param callable $mutate fn(ServerRequest) => ServerRequest
73
71
*
74
- * @param $method
75
- * @param $params
72
+ * @dataProvider mutatorMethods
76
73
*/
77
- public function testMutatorMethods_ReturnNewInstance ($ method , $ params )
74
+ public function testMutatorMethods_ReturnNewInstance (callable $ mutate )
78
75
{
79
76
$ 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 );
84
81
}
85
82
86
- public function mutatorMethods (): array
83
+ public static function mutatorMethods (): array
87
84
{
88
85
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 ()]) ]
93
90
];
94
91
}
95
92
96
93
public function testAttributeMutation_ReturnsNewInstance ()
97
94
{
98
95
$ original = $ this ->request ();
99
96
[$ 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 );
110
107
}
111
108
112
109
public function testGetParsedBodyForRequestWithoutBody_returnsNull ()
0 commit comments