Skip to content

Commit 0fb63f3

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

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

tests/dibi/Translator.like.phpt

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

0 commit comments

Comments
 (0)