From 5c0bc397c1ddc67bcedb08dbb78400685f1dcc6b Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Thu, 9 Jul 2020 12:56:32 +0300 Subject: [PATCH] fix test --- tests/integration/Core/BaseTestCase.php | 36 ++++++++++++------------- tests/integration/Espo/User/AclTest.php | 15 ++++++----- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/tests/integration/Core/BaseTestCase.php b/tests/integration/Core/BaseTestCase.php index f096a8734c..93f447ca8a 100644 --- a/tests/integration/Core/BaseTestCase.php +++ b/tests/integration/Core/BaseTestCase.php @@ -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) diff --git a/tests/integration/Espo/User/AclTest.php b/tests/integration/Espo/User/AclTest.php index b923845e7f..a1ee44ad09 100644 --- a/tests/integration/Espo/User/AclTest.php +++ b/tests/integration/Espo/User/AclTest.php @@ -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);