11
11
*/
12
12
namespace HyperfTest \Validation \Cases ;
13
13
14
+ use Hyperf \HttpMessage \Server \Response ;
14
15
use Hyperf \HttpMessage \Upload \UploadedFile ;
15
16
use Hyperf \Translation \ArrayLoader ;
16
17
use Hyperf \Translation \Translator ;
17
18
use Hyperf \Utils \Context ;
18
19
use Hyperf \Validation \Contract \ValidatorFactoryInterface ;
19
20
use Hyperf \Validation \ValidationException ;
20
21
use Hyperf \Validation \ValidatorFactory ;
22
+ use HyperfTest \Validation \Cases \Stub \BarSceneRequest ;
21
23
use HyperfTest \Validation \Cases \Stub \DemoRequest ;
22
24
use HyperfTest \Validation \Cases \Stub \FooSceneRequest ;
23
25
use Mockery ;
24
26
use PHPUnit \Framework \TestCase ;
25
27
use Psr \Container \ContainerInterface ;
28
+ use Psr \Http \Message \ResponseInterface ;
26
29
use Psr \Http \Message \ServerRequestInterface ;
27
30
28
31
/**
@@ -74,17 +77,46 @@ public function testRequestValidationDataWithSameKey()
74
77
$ this ->assertEquals (['file ' => ['Invalid File. ' , $ file ]], $ request ->getValidationData ());
75
78
}
76
79
80
+ public function testRewriteGetRules ()
81
+ {
82
+ $ psrRequest = Mockery::mock (ServerRequestInterface::class);
83
+ $ psrRequest ->shouldReceive ('getQueryParams ' )->andReturn ([]);
84
+ $ psrRequest ->shouldReceive ('getUploadedFiles ' )->andReturn ([]);
85
+ $ psrRequest ->shouldReceive ('getParsedBody ' )->andReturn ([
86
+ 'name ' => 'xxx ' ,
87
+ ]);
88
+
89
+ Context::set (ServerRequestInterface::class, $ psrRequest );
90
+ Context::set (ResponseInterface::class, new Response ());
91
+ $ container = Mockery::mock (ContainerInterface::class);
92
+ $ translator = new Translator (new ArrayLoader (), 'en ' );
93
+ $ container ->shouldReceive ('get ' )->with (ValidatorFactoryInterface::class)->andReturn (new ValidatorFactory ($ translator ));
94
+
95
+ $ request = new BarSceneRequest ($ container );
96
+ $ res = $ request ->scene ('required ' )->validated ();
97
+ $ this ->assertSame (['name ' => 'xxx ' ], $ res );
98
+
99
+ try {
100
+ $ request = new BarSceneRequest ($ container );
101
+ $ request ->validateResolved ();
102
+ $ this ->assertTrue (false );
103
+ } catch (\Throwable $ exception ) {
104
+ $ this ->assertInstanceOf (ValidationException::class, $ exception );
105
+ $ this ->assertSame ('validation.integer ' , $ exception ->validator ->errors ()->first ());
106
+ }
107
+ }
108
+
77
109
public function testSceneForFormRequest ()
78
110
{
79
111
$ psrRequest = Mockery::mock (ServerRequestInterface::class);
80
112
$ psrRequest ->shouldReceive ('getQueryParams ' )->andReturn ([]);
81
113
$ psrRequest ->shouldReceive ('getUploadedFiles ' )->andReturn ([]);
82
114
$ psrRequest ->shouldReceive ('getParsedBody ' )->andReturn ([
83
115
'mobile ' => '12345 ' ,
84
- 'name ' => '' ,
85
116
]);
86
117
87
118
Context::set (ServerRequestInterface::class, $ psrRequest );
119
+ Context::set (ResponseInterface::class, new Response ());
88
120
$ container = Mockery::mock (ContainerInterface::class);
89
121
$ translator = new Translator (new ArrayLoader (), 'en ' );
90
122
$ container ->shouldReceive ('get ' )->with (ValidatorFactoryInterface::class)->andReturn (new ValidatorFactory ($ translator ));
@@ -95,8 +127,9 @@ public function testSceneForFormRequest()
95
127
96
128
wait (function () use ($ request , $ psrRequest ) {
97
129
Context::set (ServerRequestInterface::class, $ psrRequest );
130
+ Context::set (ResponseInterface::class, new Response ());
98
131
try {
99
- $ request ->validated ();
132
+ $ request ->validateResolved ();
100
133
$ this ->assertTrue (false );
101
134
} catch (\Throwable $ exception ) {
102
135
$ this ->assertInstanceOf (ValidationException::class, $ exception );
@@ -105,7 +138,7 @@ public function testSceneForFormRequest()
105
138
106
139
try {
107
140
$ request = new FooSceneRequest ($ container );
108
- $ request ->validated ();
141
+ $ request ->validateResolved ();
109
142
$ this ->assertTrue (false );
110
143
} catch (\Throwable $ exception ) {
111
144
$ this ->assertInstanceOf (ValidationException::class, $ exception );
0 commit comments