コード例 #1
0
ファイル: OrderTest.php プロジェクト: titounnes/CodeIgniter4
 public function testOrderRandom()
 {
     $builder = new BaseBuilder('user', $this->db);
     $builder->orderBy('name', 'random');
     $expectedSQL = "SELECT * FROM \"user\" ORDER BY RAND()";
     $this->assertEquals($expectedSQL, str_replace("\n", ' ', $builder->getCompiledSelect()));
 }
コード例 #2
0
ファイル: GroupTest.php プロジェクト: titounnes/CodeIgniter4
 public function testOrNotGroups()
 {
     $builder = new BaseBuilder('user', $this->db);
     $builder->where('name', 'Darth')->orNotGroupStart()->where('id >', 3)->where('name !=', 'Luke')->groupEnd();
     $expectedSQL = "SELECT * FROM \"user\" WHERE \"name\" = :name OR NOT   ( \"id\" > :id AND \"name\" != :name0  )";
     $this->assertEquals($expectedSQL, str_replace("\n", ' ', $builder->getCompiledSelect()));
 }
コード例 #3
0
ファイル: JoinTest.php プロジェクト: titounnes/CodeIgniter4
 public function testJoinMultipleConditions()
 {
     $builder = new BaseBuilder('table1', $this->db);
     $builder->join('table2', "table1.field1 = table2.field2 AND table1.field1 = 'foo' AND table2.field2 = 0", 'LEFT');
     $expectedSQL = "SELECT * FROM \"table1\" LEFT JOIN \"table2\" ON \"table1\".\"field1\" = \"table2\".\"field2\" AND \"table1\".\"field1\" = 'foo' AND \"table2\".\"field2\" = 0";
     $this->assertEquals($expectedSQL, str_replace("\n", ' ', $builder->getCompiledSelect()));
 }
コード例 #4
0
 public function testDelete()
 {
     $builder = new BaseBuilder('user', $this->db);
     $builder->select('country')->distinct();
     $expectedSQL = "SELECT DISTINCT \"country\" FROM \"user\"";
     $this->assertEquals($expectedSQL, str_replace("\n", ' ', $builder->getCompiledSelect()));
 }
コード例 #5
0
ファイル: FromTest.php プロジェクト: titounnes/CodeIgniter4
 public function testFromWithMultipleTablesAsString()
 {
     $builder = new BaseBuilder('user', $this->db);
     $builder->from(['jobs, roles']);
     $expectedSQL = "SELECT * FROM \"user\", \"jobs\", \"roles\"";
     $this->assertEquals($expectedSQL, str_replace("\n", ' ', $builder->getCompiledSelect()));
 }
コード例 #6
0
ファイル: LimitTest.php プロジェクト: titounnes/CodeIgniter4
 public function testLimitAndOffsetMethod()
 {
     $builder = new BaseBuilder('user', $this->db);
     $builder->limit(5)->offset(1);
     $expectedSQL = "SELECT * FROM \"user\"  LIMIT 1, 5";
     $this->assertEquals($expectedSQL, str_replace("\n", ' ', $builder->getCompiledSelect()));
 }
コード例 #7
0
ファイル: CountTest.php プロジェクト: titounnes/CodeIgniter4
 public function testCountAllResults()
 {
     $builder = new BaseBuilder('jobs', $this->db);
     $answer = $builder->where('id >', 3)->countAllResults(null, true);
     $expectedSQL = "SELECT COUNT(*) AS \"numrows\" FROM \"jobs\" WHERE \"id\" > :id";
     $this->assertEquals($expectedSQL, str_replace("\n", ' ', $answer));
 }
コード例 #8
0
ファイル: EmptyTest.php プロジェクト: titounnes/CodeIgniter4
 public function testEmptyWithNoTable()
 {
     $builder = new BaseBuilder('jobs', $this->db);
     $builder->returnDeleteSQL = true;
     $answer = $builder->emptyTable(true);
     $expectedSQL = "DELETE FROM \"jobs\"";
     $this->assertEquals($expectedSQL, str_replace("\n", ' ', $answer));
 }
コード例 #9
0
ファイル: LikeTest.php プロジェクト: titounnes/CodeIgniter4
 public function testOrNotLike()
 {
     $builder = new BaseBuilder('job', $this->db);
     $builder->like('name', 'veloper')->orNotLike('name', 'ian');
     $expectedSQL = "SELECT * FROM \"job\" WHERE \"name\" LIKE :name ESCAPE '!' OR  \"name\" NOT LIKE :name0 ESCAPE '!'";
     $expectedBinds = ['name' => '%veloper%', 'name0' => '%ian%'];
     $this->assertEquals($expectedSQL, str_replace("\n", ' ', $builder->getCompiledSelect()));
     $this->assertSame($expectedBinds, $builder->getBinds());
 }
コード例 #10
0
 public function testTruncate()
 {
     $builder = new BaseBuilder('user', $this->db);
     $expectedSQL = "TRUNCATE \"user\"";
     $this->assertEquals($expectedSQL, $builder->truncate(true));
 }
コード例 #11
0
ファイル: SelectTest.php プロジェクト: titounnes/CodeIgniter4
 public function testSelectMaxWithDotNameAndNoAlias()
 {
     $builder = new BaseBuilder('invoices', $this->db);
     $builder->selectMax('db.payments');
     $expected = "SELECT MAX(\"db\".\"payments\") AS \"payments\" FROM \"invoices\"";
     $this->assertEquals($expected, str_replace("\n", ' ', $builder->getCompiledSelect()));
 }
コード例 #12
0
ファイル: UpdateTest.php プロジェクト: titounnes/CodeIgniter4
 public function testUpdateBatchThrowsExceptionWithEmptySetArray()
 {
     $builder = new BaseBuilder('jobs', $this->db);
     $this->setExpectedException('CodeIgniter\\DatabaseException', 'updateBatch() called with no data');
     $builder->updateBatch([], 'id');
 }
コード例 #13
0
ファイル: Builder.php プロジェクト: titounnes/CodeIgniter4
 /**
  * Delete statement
  *
  * Generates a platform-specific delete string from the supplied data
  *
  * @param    string    the table name
  *
  * @return    string
  */
 protected function _delete($table)
 {
     $this->QBLimit = false;
     return parent::_delete($table);
 }