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