public function testQueryWithParamsClassic() { EQM::activateConnection('second_db'); $this->assertEquals(4, EQM::queryByArray(['entity' => 'Company', 'query' => 'name = :name', 'params' => ['name' => '4 A Company Name']])->one()->id); $this->assertEquals(CNT_COMPANY, EQM::queryByArray(['entity' => Company::class, 'query' => 'Company.remark like :remark', 'params' => ['remark' => 'A remark for%']])->count()); $this->assertEquals(CNT_COMPANY, EQM::queryByArray(['entity' => \Bootstrap\Company::class, 'query' => 'Company.remark like ?', 'params' => 'A remark for%'])->count()); EQM::activateConnection(); }
public function testUpdateClassicWithNamespace() { EQM::activateConnection('second_db'); $c = EQM::queryByArray(['entity' => Bootstrap\Company::class, 'query' => 'id = ?', 'params' => CNT_COMPANY + 1])->one(); $c->remark = $c->remark . ' no from testUpdate(Company)'; EQM::update($c); $this->assertEquals($c->remark, EQM::queryByArray(['entity' => Bootstrap\Company::class, 'query' => 'id = ?', 'params' => $c->id])->one()->remark); $p = EQM::queryByArray(['entity' => Bootstrap\Project::class, 'query' => 'id = ?', 'params' => $c->id . '_PROJECT'])->one(); $p->name = $p->name . ' from testUpdate(Project)'; EQM::update($p); $this->assertEquals($p->name, EQM::queryByArray(['entity' => Bootstrap\Project::class, 'query' => 'id = ?', 'params' => $p->id])->one()->name); $pa = EQM::queryByArray(['entity' => Bootstrap\ProjectActivity::class, 'query' => 'id = ? AND projectId = ?', 'params' => [999, $p->id]])->one(); $pa->name = $pa->name . ' from testUpdate(ProjectActivity)'; EQM::update($pa); $this->assertEquals($pa->name, EQM::queryByArray(['entity' => Bootstrap\ProjectActivity::class, 'query' => 'id = ? AND projectId = ?', 'params' => [$pa->id, $p->id]])->one()->name); EQM::activateConnection(); }
public function testDeleteClassicWithNamespace() { EQM::activateConnection('second_db'); $companies = EQM::queryByArray(['entity' => Bootstrap\Company::class, 'order' => 'id']); $companiesCount = $companies->count(); $company = $companies->one(); $projects = EQM::queryByArray(['entity' => Bootstrap\Project::class, 'query' => 'Project.companyId = ?', 'params' => $company->id]); $projectsCount = $projects->count(); $project = $projects->one(); $projectActivites = EQM::queryByArray(['entity' => Bootstrap\ProjectActivity::class, 'query' => 'ProjectActivity.projectId = ?', 'params' => $project->id]); $projectActivitesCount = $projectActivites->count(); foreach ($projectActivites as $projectActivity) { EQM::delete($projectActivity); } $projectActivites = EQM::queryByArray(['entity' => Bootstrap\ProjectActivity::class, 'query' => 'ProjectActivity.projectId = ?', 'params' => $project->id]); $this->assertEquals(0, $projectActivites->count()); EQM::delete($project); $projects = EQM::queryByArray(['entity' => Bootstrap\Project::class, 'query' => 'Project.companyId = ?', 'params' => $company->id]); $this->assertEquals($projectsCount - 1, $projects->count()); EQM::activateConnection(); }
public function testInsertClassicWithNamespace() { EQM::activateConnection('second_db'); $c = new Bootstrap\Company(); $c->name = 'A Company from testInsert()'; $c->remark = 'A remark for A Company from testInsert()'; EQM::insert($c); $this->assertEquals(CNT_COMPANY + 2, $c->id); $p = new Bootstrap\Project(); $p->id = $c->id . '_PROJECT'; $p->companyId = $c->id; $p->name = 'A project with the id ' . $p->id; $p->value = 1234.56; EQM::insert($p); $this->assertEquals($p->id, EQM::queryByArray(['entity' => Bootstrap\Project::class, 'query' => 'id = ?', 'params' => $p->id])->one()->id); $pa = new Bootstrap\ProjectActivity(); $pa->id = 999; $pa->projectId = $p->id; $pa->name = 'Activity for ' . $p->id . ' with ' . $pa->id; EQM::insert($pa); $this->assertEquals($pa->id, EQM::queryByArray(['entity' => Bootstrap\ProjectActivity::class, 'query' => 'id = ? AND projectId = ?', 'params' => [$pa->id, $p->id]])->one()->id); EQM::activateConnection(); }
function generate($max_i, $max_j, $max_k) { $c = new Company(); for ($i = 0; $i < $max_i; $i++) { $c->name = (isset($c->id) ? $c->id + 1 : 1) . ' A Company Name'; $c->remark = 'A remark for a company with the name ' . $c->name; EQM::insert($c); $p = new Project(); for ($j = 0; $j < $max_j; $j++) { $p->id = $c->id . '_' . ($j + 1) . '_PROJECT'; $p->companyId = $c->id; $p->name = 'A project with the id ' . $p->id; $p->value = $j % 10 * 100 + $c->id % $j / $j; EQM::insert($p); $pa = new ProjectActivity(); for ($k = 0; $k < $max_k; $k++) { $pa->id = 100 + $k; $pa->projectId = $p->id; $pa->name = 'Activity for ' . $p->id . ' with ' . $pa->id; EQM::insert($pa); } } } } generate(CNT_COMPANY, CNT_PROJECT, CNT_PROJECT_ACTIVITY); // Generate data for 'second_db' connection EQM::activateConnection('second_db'); generate(CNT_COMPANY, CNT_PROJECT, CNT_PROJECT_ACTIVITY); // Switch back to 'default' connection EQM::activateConnection();