From 0ad2dd70bc1cbcad0d18103ae3134f32229ef1c0 Mon Sep 17 00:00:00 2001 From: David Grudl Date: Wed, 22 Aug 2018 12:50:30 +0200 Subject: [PATCH] tests: added complex test for %like --- tests/dibi/Translator.like.phpt | 73 +++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 tests/dibi/Translator.like.phpt diff --git a/tests/dibi/Translator.like.phpt b/tests/dibi/Translator.like.phpt new file mode 100644 index 000000000..d8e75a3f2 --- /dev/null +++ b/tests/dibi/Translator.like.phpt @@ -0,0 +1,73 @@ +fetchSingle('SELECT ? LIKE %like~', 'a', 'b')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'baa', 'aa')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', 'aab', 'aa')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'bba', '%a')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', '%ba', '%a')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', '%ab', '%a')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'aa', '_a')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', '_b', '_a')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', '_ab', '_a')); + +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', 'a"a', 'a"')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'b"', '%"')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', '%"', '%"')); + +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', "a'a", "a'")); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', "b'", "%'")); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', "%'", "%'")); + +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', 'a\\a', 'a\\')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'b\\', '%\\')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', '%\\', '%\\')); + +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', 'a[a', 'a[')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %like~', 'b[', '%[')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %like~', '%[', '%[')); + + +// ends with +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', 'a', 'b')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', 'baa', 'aa')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', 'aab', 'aa')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', 'bba', '%a')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', 'a%b', '%a')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', 'b%a', '%a')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', 'aa', '_a')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', '_b', '_a')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', 'b_a', '_a')); + +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', 'a"a', '"a')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', '"b', '"%')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', '"%', '"%')); + +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', "a'a", "'a")); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', "'b", "'%")); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', "'%", "'%")); + +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', 'a\\a', '\\a')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like', '\\b', '\\%')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like', '\\%', '\\%')); + + +// contains +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like~', 'a', 'b')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like~', 'baa', 'aa')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like~', 'aab', 'aa')); +Assert::falsey($conn->fetchSingle('SELECT ? LIKE %~like~', 'bba', '%a')); +Assert::truthy($conn->fetchSingle('SELECT ? LIKE %~like~', 'b%a', '%a'));