4
4
5
5
use PHPUnit \Framework \TestCase ;
6
6
use PHPPM \Bridges \HttpKernel ;
7
- use Psr \Http \Message \ServerRequestInterface ;
8
- use Psr \Http \Message \UploadedFileInterface ;
7
+ use GuzzleHttp \Psr7 \ServerRequest ;
8
+ use GuzzleHttp \Psr7 \UploadedFile ;
9
+ use Symfony \Component \Filesystem \Filesystem ;
9
10
10
11
class SymfonyBootstrapTest extends TestCase
11
12
{
13
+ public static function tearDownAfterClass ()
14
+ {
15
+ $ fs = new Filesystem ();
16
+ $ fs ->remove (__DIR__ .'/Fixtures/var ' );
17
+ }
12
18
13
19
/**
14
20
* @runInSeparateProcess
15
21
*/
16
22
public function testGetRequest ()
17
23
{
18
- putenv ('APP_KERNEL_NAMESPACE=PHPPM \\Tests \\SymfonyMocks \\' );
24
+ putenv ('APP_KERNEL_NAMESPACE=PHPPM \\Tests \\Fixtures \\' );
19
25
$ bridge = new HttpKernel ();
20
26
$ bridge ->bootstrap ('Symfony ' , 'test ' , true );
21
27
22
- $ request = $ this ->getMockBuilder (ServerRequestInterface::class)->getMock ();
23
- $ request ->method ('getHeader ' )->with ('Cookie ' )->willReturn ([]);
24
- $ request ->method ('getQueryParams ' )->willReturn ([]);
25
- $ request ->method ('getUploadedFiles ' )->willReturn ([]);
26
- $ request ->method ('getMethod ' )->willReturn ('GET ' );
28
+ $ request = new ServerRequest ('GET ' , '/get ' );
29
+ $ _SERVER ['REQUEST_URI ' ] = (string ) $ request ->getUri ();
27
30
28
31
$ response = $ bridge ->handle ($ request );
29
32
$ this ->assertEquals (200 , $ response ->getStatusCode ());
30
- $ this ->assertEquals ('Success ' , (string )$ response ->getBody ());
33
+ $ this ->assertEquals ('Success ' , (string ) $ response ->getBody ());
31
34
}
32
35
33
36
/**
34
37
* @runInSeparateProcess
35
38
*/
36
39
public function testFileUpload ()
37
40
{
38
- putenv ('APP_KERNEL_NAMESPACE=PHPPM \\Tests \\SymfonyMocks \\' );
41
+ putenv ('APP_KERNEL_NAMESPACE=PHPPM \\Tests \\Fixtures \\' );
39
42
$ bridge = new HttpKernel ();
40
43
$ bridge ->bootstrap ('Symfony ' , 'test ' , true );
41
44
42
- $ fileOK = $ this ->getMockBuilder (UploadedFileInterface::class)->getMock ();
43
- $ fileOK ->method ('getClientFilename ' )->willReturn ('testOK.pdf ' );
44
- $ fileOK ->method ('getClientMediaType ' )->willReturn ('pdf ' );
45
- $ fileOK ->method ('getSize ' )->willReturn (1000 );
46
- $ fileOK ->method ('getError ' )->willReturn (UPLOAD_ERR_OK );
47
-
48
- $ fileErr = $ this ->getMockBuilder (UploadedFileInterface::class)->getMock ();
49
- $ fileErr ->method ('getClientFilename ' )->willReturn ('testErr.pdf ' );
50
- $ fileErr ->method ('getClientMediaType ' )->willReturn ('pdf ' );
51
- $ fileErr ->method ('getSize ' )->willReturn (0 );
52
- $ fileErr ->method ('getError ' )->willReturn (UPLOAD_ERR_NO_FILE );
53
-
54
- $ request = $ this ->getMockBuilder (ServerRequestInterface::class)->getMock ();
55
- $ request ->method ('getHeader ' )->with ('Cookie ' )->willReturn ([]);
56
- $ request ->method ('getQueryParams ' )->willReturn ([]);
57
- $ request ->method ('getUploadedFiles ' )->willReturn ([$ fileOK , $ fileErr ]);
58
- $ request ->method ('getMethod ' )->willReturn ('POST ' );
45
+ $ request = new ServerRequest ('POST ' , '/upload ' );
46
+ $ dummyStream = fopen ('data:text/plain,dummy ' , 'r ' );
47
+ $ uploadedFiles = [
48
+ new UploadedFile ($ dummyStream , 1000 , UPLOAD_ERR_OK , 'testOK.pdf ' , 'pdf ' ),
49
+ new UploadedFile ($ dummyStream , 0 , UPLOAD_ERR_NO_FILE , 'testErr.pdf ' , 'pdf ' ),
50
+ ];
51
+ $ request = $ request ->withUploadedFiles ($ uploadedFiles );
52
+ $ _SERVER ['REQUEST_URI ' ] = (string ) $ request ->getUri ();
59
53
60
54
$ response = $ bridge ->handle ($ request );
61
55
$ this ->assertEquals (201 , $ response ->getStatusCode ());
@@ -67,17 +61,14 @@ public function testFileUpload()
67
61
*/
68
62
public function testPostJSON ()
69
63
{
70
- putenv ('APP_KERNEL_NAMESPACE=PHPPM \\Tests \\SymfonyMocks \\' );
64
+ putenv ('APP_KERNEL_NAMESPACE=PHPPM \\Tests \\Fixtures \\' );
71
65
$ bridge = new HttpKernel ();
72
66
$ bridge ->bootstrap ('Symfony ' , 'test ' , true );
73
67
74
- $ _SERVER ["CONTENT_TYPE " ] = 'application/json ' ;
75
- $ request = $ this ->getMockBuilder (ServerRequestInterface::class)->getMock ();
76
- $ request ->method ('getHeader ' )->with ('Cookie ' )->willReturn ([]);
77
- $ request ->method ('getQueryParams ' )->willReturn ([]);
78
- $ request ->method ('getUploadedFiles ' )->willReturn ([]);
79
- $ request ->method ('getBody ' )->willReturn ('{"some_json_array":[{"map1":"value1"},{"map2":"value2"}]} ' );
80
- $ request ->method ('getMethod ' )->willReturn ('POST ' );
68
+ $ request = new ServerRequest ('POST ' , '/json ' , [
69
+ 'CONTENT_TYPE ' => 'application/json ' ,
70
+ ], '{"some_json_array":[{"map1":"value1"},{"map2":"value2"}]} ' );
71
+ $ _SERVER ['REQUEST_URI ' ] = (string ) $ request ->getUri ();
81
72
82
73
$ response = $ bridge ->handle ($ request );
83
74
$ this ->assertEquals (201 , $ response ->getStatusCode ());
@@ -89,17 +80,12 @@ public function testPostJSON()
89
80
*/
90
81
public function testStreamedResponse ()
91
82
{
92
- putenv ('APP_KERNEL_NAMESPACE=PHPPM \\Tests \\SymfonyMocks \\' );
83
+ putenv ('APP_KERNEL_NAMESPACE=PHPPM \\Tests \\Fixtures \\' );
93
84
$ bridge = new HttpKernel ();
94
85
$ bridge ->bootstrap ('Symfony ' , 'test ' , true );
95
86
96
- $ request = $ this ->getMockBuilder (ServerRequestInterface::class)->getMock ();
97
- $ request ->method ('getHeader ' )->with ('Cookie ' )->willReturn ([]);
98
- $ request ->method ('getQueryParams ' )->willReturn ([]);
99
- $ request ->method ('getUploadedFiles ' )->willReturn ([]);
100
- $ request ->method ('getMethod ' )->willReturn ('GET ' );
101
-
102
- $ _SERVER ['REQUEST_URI ' ] = '/streamed ' ;
87
+ $ request = new ServerRequest ('GET ' , '/streamed ' );
88
+ $ _SERVER ['REQUEST_URI ' ] = (string ) $ request ->getUri ();
103
89
104
90
$ response = $ bridge ->handle ($ request );
105
91
$ this ->assertEquals (200 , $ response ->getStatusCode ());
0 commit comments