getContainer()->get('injectableFactory'); $this->selectManagerFactory = $injectableFactory->create(SelectManagerFactory::class); } protected function initTest(array $aclData = [], bool $skipLogin = false, bool $isPortal = false): Application { $this->createUser('tester', [ 'data' => $aclData, ]); if (!$skipLogin) { $this->auth('tester'); } $app = $this->createApplication(); $injectableFactory = $app->getContainer()->get('injectableFactory'); $this->selectManagerFactory = $injectableFactory->create(SelectManagerFactory::class); $this->user = $app->getContainer()->get('user'); return $app; } public function testAccess1(): void { $app = $this->initTest( [ 'Account' => [ 'read' => 'own', ], ] ); $container = $app->getContainer(); $userId = $container->get('user')->getId(); $selectManager = $this->selectManagerFactory->create('Account'); $result = $selectManager->getEmptySelectParams(); $selectManager->applyAccess($result); $this->assertEquals(['assignedUserId' => $userId], $result['whereClause']); } public function testGetSelectParams(): void { $app = $this->initTest( [ 'Opportunity' => [ 'read' => 'own', ], ] ); $container = $app->getContainer(); $userId = $container->get('user')->getId(); $selectManager = $this->selectManagerFactory->create('Opportunity'); $params = [ 'primaryFilter' => 'open', ]; $result = $selectManager->getSelectParams($params, true, true, true); $this->assertEquals( [ 'assignedUserId' => $userId, 'stage!=' => ['Closed Won', 'Closed Lost'], ], $result['whereClause'] ); } }