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