espoTester->getApplication(true, $clearCache, $portalId); } protected function auth( $userName = null, $password = null, $portalId = null, $authenticationMethod = null, ?RequestWrapper $request = null ) { $this->userName = $userName; $this->password = $password; $this->portalId = $portalId; $this->authenticationMethod = $authenticationMethod; if (isset($this->espoTester)) { $this->espoTester->auth($userName, $password, $portalId, $authenticationMethod, $request); } } /** * Get Espo Application * * @return \Espo\Core\Application */ protected function getApplication() { return $this->espoApplication; } /** * Get Espo container * * @return \Espo\Core\Container */ protected function getContainer() { return $this->getApplication()->getContainer(); } protected function normalizePath($path) { return $this->espoTester->normalizePath($path); } protected function sendRequest($method, $action, $data = null) { return $this->espoTester->sendRequest($method, $action, $data); } protected function setUp() : void { $params = array( 'className' => get_class($this), 'dataFile' => $this->dataFile, 'pathToFiles' => $this->pathToFiles, 'initData' => $this->initData, ); $this->espoTester = new Tester($params); $this->beforeSetUp(); $this->espoTester->initialize(); $this->auth($this->userName, $this->password, null, $this->authenticationMethod); $this->beforeStartApplication(); $this->espoApplication = $this->createApplication(); $this->afterStartApplication(); } protected function tearDown() : void { $this->espoTester->terminate(); $this->espoTester = NULL; $this->espoApplication = NULL; } protected function createUser($userData, array $role = null, $isPortal = false) { return $this->espoTester->createUser($userData, $role, $isPortal); } protected function beforeSetUp() { } protected function beforeStartApplication() { } protected function afterStartApplication() { } protected function createRequest( string $method, array $queryParams = [], array $headers = [], ?string $body = null, array $routeParams = [] ) : RequestWrapper { $request = (new RequestFactory())->createRequest($method, 'http://localhost/?' . http_build_query($queryParams)); foreach ($headers as $name => $value) { $request = $request->withHeader($name, $value); } if ($body) { $request = $request->withBody( (new StreamFactory)->createStream($body) ); } return new RequestWrapper($request, '', $routeParams); } protected function createResponse() { return new ResponseWrapper( (new ResponseFactory())->createResponse() ); } protected function setData(array $data) { $this->espoTester->setData($data); } protected function fullReset() { $this->espoTester->setParam('fullReset', true); } }