where("a", 1) ->where("b", 2) ->compile(); $sql = str_replace("\n", " ", $sql); $this->assert_same("SELECT * WHERE `a` = 1 AND `b` = 2", $sql); } function compound_where_test() { $sql = Database::instance() ->where("outer1", 1) ->open_paren() ->where("inner1", 1) ->orwhere("inner2", 2) ->close_paren() ->where("outer2", 2) ->compile(); $sql = str_replace("\n", " ", $sql); $this->assert_same( "SELECT * WHERE `outer1` = 1 AND (`inner1` = 1 OR `inner2` = 2) AND `outer2` = 2", $sql); } function group_first_test() { $sql = Database::instance() ->open_paren() ->where("inner1", 1) ->orwhere("inner2", 2) ->close_paren() ->where("outer1", 1) ->where("outer2", 2) ->compile(); $sql = str_replace("\n", " ", $sql); $this->assert_same( "SELECT * WHERE (`inner1` = 1 OR `inner2` = 2) AND `outer1` = 1 AND `outer2` = 2", $sql); } function where_array_test() { $sql = Database::instance() ->where("outer1", 1) ->open_paren() ->where("inner1", 1) ->orwhere(array("inner2" => 2, "inner3" => 3)) ->close_paren() ->compile(); $sql = str_replace("\n", " ", $sql); $this->assert_same( "SELECT * WHERE `outer1` = 1 AND (`inner1` = 1 OR `inner2` = 2 OR `inner3` = 3)", $sql); } function notlike_test() { $sql = Database::instance() ->where("outer1", 1) ->open_paren() ->ornotlike("inner1", 1) ->close_paren() ->compile(); $sql = str_replace("\n", " ", $sql); $this->assert_same( "SELECT * WHERE `outer1` = 1 OR ( `inner1` NOT LIKE '%1%')", $sql); } }