Skip to content

Commit 0ad2dd7

Browse files
committed
tests: added complex test for %like
1 parent 4abe874 commit 0ad2dd7

1 file changed

Lines changed: 73 additions & 0 deletions

File tree

tests/dibi/Translator.like.phpt

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<?php
2+
3+
/**
4+
* @dataProvider ../databases.ini
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
use Tester\Assert;
10+
11+
require __DIR__ . '/bootstrap.php';
12+
13+
14+
$conn = new Dibi\Connection($config);
15+
16+
// starts with
17+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'a', 'b'));
18+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'baa', 'aa'));
19+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', 'aab', 'aa'));
20+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'bba', '%a'));
21+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', '%ba', '%a'));
22+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', '%ab', '%a'));
23+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'aa', '_a'));
24+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', '_b', '_a'));
25+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', '_ab', '_a'));
26+
27+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', 'a"a', 'a"'));
28+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'b"', '%"'));
29+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', '%"', '%"'));
30+
31+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', "a'a", "a'"));
32+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', "b'", "%'"));
33+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', "%'", "%'"));
34+
35+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', 'a\\a', 'a\\'));
36+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'b\\', '%\\'));
37+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', '%\\', '%\\'));
38+
39+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', 'a[a', 'a['));
40+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'b[', '%['));
41+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', '%[', '%['));
42+
43+
44+
// ends with
45+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', 'a', 'b'));
46+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', 'baa', 'aa'));
47+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', 'aab', 'aa'));
48+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', 'bba', '%a'));
49+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', 'a%b', '%a'));
50+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', 'b%a', '%a'));
51+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', 'aa', '_a'));
52+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', '_b', '_a'));
53+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', 'b_a', '_a'));
54+
55+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', 'a"a', '"a'));
56+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', '"b', '"%'));
57+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', '"%', '"%'));
58+
59+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', "a'a", "'a"));
60+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', "'b", "'%"));
61+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', "'%", "'%"));
62+
63+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', 'a\\a', '\\a'));
64+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', '\\b', '\\%'));
65+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', '\\%', '\\%'));
66+
67+
68+
// contains
69+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like~', 'a', 'b'));
70+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like~', 'baa', 'aa'));
71+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like~', 'aab', 'aa'));
72+
Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like~', 'bba', '%a'));
73+
Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like~', 'b%a', '%a'));

0 commit comments

Comments
 (0)