ElixirVault/tests/UnitTests/App/PubUsers/pubUsersModuleTest.php

114 lines
3.9 KiB
PHP

<?php
namespace ElixirAudit\Tests\UnitTests\App\PubUsers;
use BRSystems\Core\App\pubUsers\pubUsers;
use BRSystems\Core\App\pubUsers\inc\pubUsersModule;
use ElixirAudit\Tests\BasePhpUnitCase;
class pubUsersModuleTest extends BasePhpUnitCase
{
private pubUsers $users;
private pubUsersModule $usersModule;
private array $structure = [
'id' => 12,
'user_name' => 'Test',
'user_surname' => 'Test',
'user_login' => 'Test',
'user_email' => 'test@test.lv',
'user_phone' => '+37123634919',
'user_password' => '$1t$17$ty8ZIZL.M6CbyetuysC7JOGCjvppB7c.Tz/YsTQ8RoZgi8tdYV72p',
'user_img' => '',
'user_lang_id' => '7',
'user_last_ip' => '',
'user_last_login' =>'0',
'user_last_location_url' => '',
'user_cfg' => '',
'user_fchange' => '0',
'user_comp_id' => '0',
'user_2fa_secret_enabled' => 'RIGOKMQZLVG4VG45',
'user_created' => '1515671353',
'user_modified' => '1637512886',
'user_activated' => '0',
'user_blocked' => '0',
'user_deleted' => '0',
'user_admin' => '0',
'user_pwdtime' => '0',
'user_newpwd' => '',
'user_modified_by' => '-1',
'user_created_by' => '-1',
];
protected function setUp(): void
{
// Init base structure
$this->unitTestsAreRunning = true;
parent::setUp();
$this->reloadDbTables(['mod_users', 'mod_users_permissions']);
// Create new class
$this->users = $this->initBaseClassObjectBySiteMapId();
$this->usersModule = $this->users->controller->module;
}
protected function tearDown(): void
{
$this->reloadDbTables(['mod_users', 'mod_users_permissions']);
parent::tearDown();
}
public function testPubUsersModule(): void
{
$base = $this->structure;
unset($base['id']);
$base['user_login'] = 'MyTestUserLoginUnique';
$this->assertGreaterThan(0, $newUserId = $this->usersModule->addNewUser($base));
$UserDataFromDb = $this->usersModule->getUserByLogin($base['user_login']);
unset($UserDataFromDb['id']);
$this->assertEquals($base, $UserDataFromDb);
$this->assertEquals($base['user_login'] , $this->usersModule->getUserLoginById($newUserId));
$userData = $this->usersModule->getUserByLoginData(['id' => $newUserId]);
$this->assertEquals($userData['user_activated'], 0);
$this->usersModule->setUserActiveById($newUserId);
$userData = $this->usersModule->getUserByLoginData(['id' => $newUserId]);
$this->assertEquals($userData['user_activated'], 1);
$permissions = $this->usersModule->pubLoadUserPermissionArray($newUserId);
$this->assertNull($permissions);
$groups = $this->usersModule->pubLoadUserGroupPerArray($newUserId);
$this->assertNull($groups);
// Call for coverage
$objects = $this->usersModule->pubLoadUserObjectsPerArray($newUserId);
$companyData = $this->usersModule->getCompanyDataByCpId(23);
$this->assertIsArray($companyData);
$this->assertEquals('Mareks Keišs pašn.', $companyData['a_title']);
$companyData = $this->usersModule->getCompanyDataByCpId(23, ['id', 'a_title']);
$this->assertIsArray($companyData);
$this->assertEquals(['id' => 23, 'a_title' => 'Mareks Keišs pašn.'], $companyData);
$userId = $this->usersModule->getUserDataByEmail($base['user_email']);
$this->assertEquals($newUserId, $userId);
$exclude = [
1 => [
'd1' => strtotime('first day of January 2024'),
'd2' => strtotime('last day of March 2024'),
],
];
$data = $this->usersModule->chkDataForPaymentMissingInSelectedPeriod('mod_accounting', 'a_doc_date', $exclude);
$this->assertEquals(['1' => ['d1' => 1704060000, 'd2' => 1711836000]], $data);
}
}