This commit is contained in:
Yuri Kuznetsov
2020-07-09 12:56:32 +03:00
parent 21e9131c65
commit 5c0bc397c1
2 changed files with 27 additions and 24 deletions
+18 -18
View File
@@ -29,6 +29,12 @@
namespace tests\integration\Core;
use Espo\Core\Api\RequestWrapper;
use Espo\Core\Api\ResponseWrapper;
use Slim\Psr7\Factory\RequestFactory;
use Slim\Psr7\Factory\ResponseFactory;
abstract class BaseTestCase extends \PHPUnit\Framework\TestCase
{
protected $espoTester;
@@ -164,28 +170,22 @@ abstract class BaseTestCase extends \PHPUnit\Framework\TestCase
}
/**
* Create Slim request object
*
* @param string $method
* @param array $params
* @param array $envParams E.g. 'REQUEST_METHOD' => 'GET', 'QUERY_STRING' => 'name=John&age=30'. More details \Slim\Environment::mock()
*
* @return \Slim\Http\Request
*/
protected function createRequest($method, array $params = array(), array $envParams = array())
protected function createRequest(string $method, array $queryParams = [], array $headers = []) : RequestWrapper
{
if (!isset($envParams['REQUEST_METHOD'])) {
$envParams['REQUEST_METHOD'] = strtoupper($method);
$request = (new RequestFactory())->createRequest($method, 'http://localhost/?' . http_build_query($queryParams));
foreach ($headers as $name => $value) {
$request = $request->withHeader($name, $value);
}
if (!isset($envParams['QUERY_STRING'])) {
$envParams['QUERY_STRING'] = http_build_query($params);
}
return new RequestWrapper($request);
}
$slimEnvironment = \Slim\Environment::mock($envParams);
return new \Slim\Http\Request($slimEnvironment);
protected function createResponse()
{
return new ResponseWrapper(
(new ResponseFactory())->createResponse()
);
}
protected function setData(array $data)
+9 -6
View File
@@ -82,7 +82,7 @@ class AclTest extends \tests\integration\Core\BaseTestCase
$params = array();
$data = '{"name":"Test Account"}';
$request = $this->createRequest('POST', $params, array('CONTENT_TYPE' => 'application/json'));
$result = $controllerManager->process('Account', 'create', $params, $data, $request);
$result = $controllerManager->process('Account', 'create', $params, $data, $request, $this->createResponse());
}
public function testPortalUserAccess()
@@ -121,7 +121,7 @@ class AclTest extends \tests\integration\Core\BaseTestCase
$params = array();
$data = '{"name":"Test Account"}';
$request = $this->createRequest('POST', $params, array('CONTENT_TYPE' => 'application/json'));
$result = $controllerManager->process('Account', 'create', $params, $data, $request);
$result = $controllerManager->process('Account', 'create', $params, $data, $request, $this->createResponse());
}
public function testUserAccessEditOwn1()
@@ -150,7 +150,8 @@ class AclTest extends \tests\integration\Core\BaseTestCase
'title' => 'Test'
];
$request = $this->createRequest('PATCH', $params, ['CONTENT_TYPE' => 'application/json']);
$result = $controllerManager->process('User', 'update', $params, json_encode($data), $request);
$result = $controllerManager->process(
'User', 'update', $params, json_encode($data), $request, $this->createResponse());
$this->assertTrue(is_string($result));
@@ -165,7 +166,8 @@ class AclTest extends \tests\integration\Core\BaseTestCase
$result = null;
try {
$result = $controllerManager->process('User', 'update', $params, json_encode($data), $request);
$result = $controllerManager->process(
'User', 'update', $params, json_encode($data), $request, $this->createResponse());
} catch (\Exception $e) {};
$this->assertNull($result);
@@ -180,7 +182,7 @@ class AclTest extends \tests\integration\Core\BaseTestCase
'teamsIds' => ['id']
];
$request = $this->createRequest('PATCH', $params, ['CONTENT_TYPE' => 'application/json']);
$result = $controllerManager->process('User', 'update', $params, json_encode($data), $request);
$result = $controllerManager->process('User', 'update', $params, json_encode($data), $request, $this->createResponse());
$resultData = json_decode($result);
$this->assertTrue(!property_exists($resultData, 'type') || $resultData->type !== 'admin');
@@ -216,7 +218,8 @@ class AclTest extends \tests\integration\Core\BaseTestCase
$result = null;
try {
$result = $controllerManager->process('User', 'update', $params, json_encode($data), $request);
$result = $controllerManager->process(
'User', 'update', $params, json_encode($data), $request, $this->createResponse());
} catch (\Exception $e) {};
$this->assertNull($result);