Skip to content

Commit 749e20c

Browse files
committed
unit test for doRequst method
1 parent 74e2e2e commit 749e20c

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Codeception\Lib\Connector\Phalcon4 as PhalconConnector;
6+
use Codeception\Module\Phalcon4;
7+
use Symfony\Component\BrowserKit\Request;
8+
9+
class Phalcon4ConnectorTest extends \Codeception\Test\Unit
10+
{
11+
protected function getPhalconModule(): Phalcon4
12+
{
13+
$container = \Codeception\Util\Stub::make('Codeception\Lib\ModuleContainer');
14+
$module = new Phalcon4($container);
15+
$module->_setConfig([
16+
'bootstrap' => 'tests/_data/bootstrap.php',
17+
'cleanup' => true,
18+
'savepoints' => true,
19+
'session' => 'Codeception\Lib\Connector\Phalcon4\MemorySession'
20+
]);
21+
$module->_initialize();
22+
return $module;
23+
}
24+
25+
public function testConstruct(): void
26+
{
27+
$connector = new PhalconConnector();
28+
$this->assertInstanceOf(PhalconConnector::class, $connector);
29+
}
30+
31+
public function testDoRequest(): void
32+
{
33+
$module = $this->getPhalconModule();
34+
$test = new Codeception\Test\Unit();
35+
$module->_before($test);
36+
37+
$connector = $module->client;
38+
39+
// parameters for Request object
40+
$uri = '/';
41+
$method = 'GET';
42+
$params = [
43+
'first' => 'one',
44+
'second' => 'two'
45+
];
46+
$files = [
47+
'file' => [
48+
'name' => 'SomeFile.ext',
49+
'tmp_name' => 'SomeFile.ext',
50+
'error' => false
51+
]
52+
];
53+
$cookies = [
54+
'token' => 'asdev257'
55+
];
56+
$server = [
57+
'HTTP_HOST' => 'localhost',
58+
'SERVER_NAME' => 'my pc',
59+
'SERVER_ADDR' => '127.0.0.1',
60+
];
61+
$content = "this is request content";
62+
63+
$request = new Request(
64+
$uri,
65+
$method,
66+
$params,
67+
$files,
68+
$cookies,
69+
$server,
70+
$content
71+
);
72+
73+
// send request
74+
$response = $connector->doRequest($request);
75+
$this->assertSame(200, $response->getStatusCode());
76+
77+
/** @var Phalcon\Http\Request $requestService*/
78+
$requestService = $module->grabServiceFromContainer('request');
79+
80+
// assert request uri
81+
$this->assertSame($uri, $requestService->getURI());
82+
83+
// assert request method
84+
$this->assertSame($method, $requestService->getMethod());
85+
86+
// assert reques paramters
87+
$this->assertSame($params['first'], $requestService->get('first'));
88+
$this->assertSame($params['second'], $requestService->get('second'));
89+
90+
// assert uploaded file
91+
$this->assertTrue($requestService->hasFiles());
92+
/** @var Phalcon\Http\Request\File $uploadedFile */
93+
$uploadedFile = $requestService->getUploadedFiles()[0];
94+
$this->assertSame($files['file']['name'], $uploadedFile->getName());
95+
$this->assertSame($files['file']['tmp_name'], $uploadedFile->getTempName());
96+
$this->assertSame('ext', $uploadedFile->getExtension());
97+
98+
// assert server parameter
99+
$this->assertSame($server['HTTP_HOST'], $requestService->getServer('HTTP_HOST'));
100+
101+
// assert request body
102+
$this->assertSame($content, $requestService->getRawBody());
103+
104+
$module->_after($test);
105+
}
106+
}

0 commit comments

Comments
 (0)