Пример #1
0
 public function testDefaultSimpleQuery()
 {
     $count = EQM::queryByArray(['entity' => 'Company'])->count();
     $result = EQM::query('Company')->result();
     $this->assertEquals($count, $result->count());
     $resultArray = $result->all();
     $this->assertTrue($resultArray instanceof \ArrayAccess);
     $this->assertEquals($count, count($resultArray));
     $this->assertEquals('Company', get_class($resultArray[0]));
 }
Пример #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 testComplex()
 {
     $companies = EQM::queryByArray(['entity' => 'Company']);
     $count = $companies->count();
     EQM::begin();
     foreach ($companies as $company) {
         $company->remark = 'Transaction remark';
         EQM::update($company);
         $projects = EQM::queryByArray(['entity' => Project::class, 'query' => 'id = ?', 'params' => $company->id]);
         foreach ($projects as $project) {
             $project->value = 999.99;
             EQM::update($project);
         }
     }
     EQM::rollBack();
     $companyCount = EQM::queryByArray(['entity' => 'Company'])->count();
     $this->assertEquals($count, $companyCount);
     $companies = EQM::queryByArray(['entity' => 'Company', 'query' => 'remark = ?', 'params' => 'Transaction remark']);
     $this->assertEquals(0, $companies->count());
 }
Пример #4
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();
 }
Пример #5
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();
 }
Пример #6
0
 public function testQueryWithOrder()
 {
     $this->assertEquals(CNT_COMPANY, EQM::queryByArray(['entity' => \Bootstrap\Project::class, 'order' => 'companyId DESC'])->one()->companyId);
     $this->assertEquals(CNT_COMPANY, EQM::queryByArray(['entity' => AnotherCompany::class, 'order' => 'AnotherCompany.id DESC'])->one()->id);
     $this->assertEquals(1, EQM::queryByArray(['entity' => \Bootstrap\Project::class, 'order' => 'companyId'])->one()->companyId);
 }