Skip to content

Commit 8a9b3c3

Browse files
committed
test: add tests
1 parent 9a71a94 commit 8a9b3c3

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

tests/system/Database/Builder/WhereTest.php

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,53 @@ public function testWhereCustomString()
160160
$this->assertSame($expectedBinds, $builder->getBinds());
161161
}
162162

163+
public function testWhereCustomStringWithOperatorEscapeFalse()
164+
{
165+
$builder = $this->db->table('jobs');
166+
167+
$where = 'CURRENT_TIMESTAMP() = DATE_ADD(column, INTERVAL 2 HOUR)';
168+
$builder->where($where, null, false);
169+
170+
$expectedSQL = 'SELECT * FROM "jobs" WHERE CURRENT_TIMESTAMP() = DATE_ADD(column, INTERVAL 2 HOUR)';
171+
$this->assertSame($expectedSQL, str_replace("\n", ' ', $builder->getCompiledSelect()));
172+
173+
$expectedBinds = [];
174+
$this->assertSame($expectedBinds, $builder->getBinds());
175+
}
176+
177+
public function testWhereCustomStringWithoutOperatorEscapeFalse()
178+
{
179+
$builder = $this->db->table('jobs');
180+
181+
$where = "REPLACE(column, 'somestring', '')";
182+
$builder->where($where, "''", false);
183+
184+
$expectedSQL = "SELECT * FROM \"jobs\" WHERE REPLACE(column, 'somestring', '') = ''";
185+
$this->assertSame($expectedSQL, str_replace("\n", ' ', $builder->getCompiledSelect()));
186+
187+
$expectedBinds = [
188+
"REPLACE(column, 'somestring', '')" => [
189+
0 => "''",
190+
1 => false,
191+
],
192+
];
193+
$this->assertSame($expectedBinds, $builder->getBinds());
194+
}
195+
196+
public function testWhereCustomStringWithBetweenEscapeFalse()
197+
{
198+
$builder = $this->db->table('jobs');
199+
200+
$where = "created_on BETWEEN '2022-07-01 00:00:00' AND '2022-12-31 23:59:59'";
201+
$builder->where($where, null, false);
202+
203+
$expectedSQL = "SELECT * FROM \"jobs\" WHERE created_on BETWEEN '2022-07-01 00:00:00' AND '2022-12-31 23:59:59'";
204+
$this->assertSame($expectedSQL, str_replace("\n", ' ', $builder->getCompiledSelect()));
205+
206+
$expectedBinds = [];
207+
$this->assertSame($expectedBinds, $builder->getBinds());
208+
}
209+
163210
public function testWhereRawSql()
164211
{
165212
$builder = $this->db->table('jobs');

0 commit comments

Comments
 (0)