@@ -44,4 +44,60 @@ public function testGetWithReset()
4444 $ this ->assertEquals ($ expectedSQLafterreset , str_replace ("\n" , ' ' , $ builder ->get (0 , 50 , true , true )));
4545 }
4646
47+ //--------------------------------------------------------------------
48+
49+ /**
50+ * @see https://github.com/codeigniter4/CodeIgniter4/issues/2143
51+ */
52+ public function testGetWhereWithLimit ()
53+ {
54+ $ builder = $ this ->db ->table ('users ' );
55+
56+ $ expectedSQL = 'SELECT * FROM "users" WHERE "username" = \'bogus \' LIMIT 5 ' ;
57+ $ expectedSQLWithoutReset = 'SELECT * FROM "users" WHERE "username" = \'bogus \' AND "username" = \'bogus \' LIMIT 5 ' ;
58+
59+ $ this ->assertEquals ($ expectedSQL , str_replace ("\n" , ' ' , $ builder ->getWhere (['username ' => 'bogus ' ], 5 , null , true , false )));
60+ $ this ->assertEquals ($ expectedSQLWithoutReset , str_replace ("\n" , ' ' , $ builder ->getWhere (['username ' => 'bogus ' ], 5 , 0 , true , true )));
61+ $ this ->assertEquals ($ expectedSQL , str_replace ("\n" , ' ' , $ builder ->getWhere (['username ' => 'bogus ' ], 5 , null , true , true )));
62+ }
63+
64+ //--------------------------------------------------------------------
65+
66+ public function testGetWhereWithLimitAndOffset ()
67+ {
68+ $ builder = $ this ->db ->table ('users ' );
69+
70+ $ expectedSQL = 'SELECT * FROM "users" WHERE "username" = \'bogus \' LIMIT 10, 5 ' ;
71+ $ expectedSQLWithoutReset = 'SELECT * FROM "users" WHERE "username" = \'bogus \' AND "username" = \'bogus \' LIMIT 10, 5 ' ;
72+
73+ $ this ->assertEquals ($ expectedSQL , str_replace ("\n" , ' ' , $ builder ->getWhere (['username ' => 'bogus ' ], 5 , 10 , true , false )));
74+ $ this ->assertEquals ($ expectedSQLWithoutReset , str_replace ("\n" , ' ' , $ builder ->getWhere (['username ' => 'bogus ' ], 5 , 10 , true , true )));
75+ $ this ->assertEquals ($ expectedSQL , str_replace ("\n" , ' ' , $ builder ->getWhere (['username ' => 'bogus ' ], 5 , 10 , true , true )));
76+ }
77+
78+ //--------------------------------------------------------------------
79+
80+ public function testGetWhereWithWhereConditionOnly ()
81+ {
82+ $ builder = $ this ->db ->table ('users ' );
83+
84+ $ expectedSQL = 'SELECT * FROM "users" WHERE "username" = \'bogus \'' ;
85+ $ expectedSQLWithoutReset = 'SELECT * FROM "users" WHERE "username" = \'bogus \' AND "username" = \'bogus \'' ;
86+
87+ $ this ->assertEquals ($ expectedSQL , str_replace ("\n" , ' ' , $ builder ->getWhere (['username ' => 'bogus ' ], null , null , true , false )));
88+ $ this ->assertEquals ($ expectedSQLWithoutReset , str_replace ("\n" , ' ' , $ builder ->getWhere (['username ' => 'bogus ' ], null , null , true , true )));
89+ $ this ->assertEquals ($ expectedSQL , str_replace ("\n" , ' ' , $ builder ->getWhere (['username ' => 'bogus ' ], null , null , true , true )));
90+ }
91+
92+ //--------------------------------------------------------------------
93+
94+ public function testGetWhereWithoutArgs ()
95+ {
96+ $ builder = $ this ->db ->table ('users ' );
97+
98+ $ expectedSQL = 'SELECT * FROM "users" ' ;
99+
100+ $ this ->assertEquals ($ expectedSQL , str_replace ("\n" , ' ' , $ builder ->getWhere (null , null , null , true , true )));
101+ }
102+
47103}
0 commit comments