Пример #1
0
 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();
 }
Пример #2
0
 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();
 }
Пример #3
0
 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();
 }
Пример #4
0
 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();
 }
Пример #5
0
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();