setType($type); $this->database->insert("account", [ "user_name" => "foo", "email" => "foo@bar.com" ]); $this->assertQuery( "INSERT INTO "account" ("user_name", "email")\nVALUES ('foo', 'foo@bar.com')", $this->database->queryString ); } /** * @covers ::insert() * @covers ::typeMap() * @dataProvider typesProvider */ public function testInsertWithArray($type) { $this->setType($type); $this->database->insert("account", [ "user_name" => "foo", "lang" => ["en", "fr"] ]); $this->assertQuery([ 'default' => "INSERT INTO "account" ("user_name", "lang")\nVALUES ('foo', 'a:2:{i:0;s:2:"en";i:1;s:2:"fr";}')", 'mysql' => "INSERT INTO "account" ("user_name", "lang")\nVALUES ('foo', 'a:2:{i:0;s:2:\"en\";i:1;s:2:\"fr\";}')" ], $this->database->queryString); } /** * @covers ::insert() * @covers ::typeMap() * @dataProvider typesProvider */ public function testInsertWithJSON($type) { $this->setType($type); $this->database->insert("account", [ "user_name" => "foo", "lang [JSON]" => ["en", "fr"] ]); $this->assertQuery([ 'default' => "INSERT INTO "account" ("user_name", "lang")\nVALUES ('foo', '["en","fr"]')", 'mysql' => "INSERT INTO `account` (`user_name`, `lang`)\nVALUES ('foo', '[\"en\",\"fr\"]')" ], $this->database->queryString); } /** * @covers ::insert() * @dataProvider typesProvider */ public function testInsertWithRaw($type) { $this->setType($type); $this->database->insert("account", [ "user_name" => Medoo::raw("UUID()") ]); $this->assertQuery( "INSERT INTO "account" ("user_name")\nVALUES (UUID())", $this->database->queryString ); } /** * @covers ::insert() * @covers ::typeMap() * @dataProvider typesProvider */ public function testInsertWithNull($type) { $this->setType($type); $this->database->insert("account", [ "location" => null ]); $this->assertQuery( "INSERT INTO "account" ("location")\nVALUES (NULL)", $this->database->queryString ); } /** * @covers ::insert() * @covers ::typeMap() * @dataProvider typesProvider */ public function testInsertWithObject($type) { $this->setType($type); $objectData = new Foo(); $this->database->insert("account", [ "object" => $objectData ]); $this->assertQuery( "INSERT INTO "account" ("object")\nVALUES (:MeD0_mK)", $this->database->queryString ); } /** * @covers ::insert() * @dataProvider typesProvider */ public function testMultiInsert($type) { $this->setType($type); $this->database->insert("account", [ [ "user_name" => "foo", "email" => "foo@bar.com" ], [ "user_name" => "bar", "email" => "bar@foo.com" ] ]); $this->assertQuery( "INSERT INTO "account" ("user_name", "email")\nVALUES ('foo', 'foo@bar.com'), ('bar', 'bar@foo.com')", $this->database->queryString ); } public function testOracleWithPrimaryKeyInsert() { $this->setType("oracle"); $this->database->insert("ACCOUNT", [ "NAME" => "foo", "EMAIL" => "foo@bar.com" ], "ID"); $this->assertQuery( "INSERT INTO "ACCOUNT" ("NAME", "EMAIL")\nVALUES ('foo', 'foo@bar.com')\nRETURNING "ID" INTO :RETURNID", $this->database->queryString ); } public function testOracleWithLOBsInsert() { $this->setType("oracle"); $fp = fopen('README.md', 'r'); $this->database->insert("ACCOUNT", [ "NAME" => "foo", "DATA" => $fp ]); $this->assertQuery( "INSERT INTO "ACCOUNT" ("NAME", "DATA")\nVALUES ('foo', EMPTY_BLOB())\nRETURNING "DATA" INTO :MeD1_mK", $this->database->queryString ); } public function testOracleWithLOBsAndIdInsert() { $this->setType("oracle"); $fp = fopen('README.md', 'r'); $this->database->insert("ACCOUNT", [ "NAME" => "foo", "DATA" => $fp ], "ID"); $this->assertQuery( "INSERT INTO "ACCOUNT" ("NAME", "DATA")\nVALUES ('foo', EMPTY_BLOB())\nRETURNING "DATA", "ID" INTO :MeD1_mK, :RETURNID", $this->database->queryString ); } } __halt_compiler();----SIGNATURE:----I6VYZw+dMNuNvacyRQVIlGON6eaUFaSyLhLI4pj0iSTUDoBP8TDNukf/XcJR7zeMlnfMs1ZzHp3rTpWXAYzP9zEaJKIus9hu5sSWJlnyLOE96KJDeSGxk0lMc9Ekd+d+1XZtM608B3oMyI8hrGRA9A5hssTLj8uIlO4p8R4kuaZS0fa7IJzzD2LwzbqawP5L8xxAWT200ctyMtZ47gNQT2dkm0XJOfLyHwKwYKbedzyNDpRLaYLvcQdR85EnSDF/m9rqK8KvULocXRqYLESwu6Ugv8xK3IcRLC9vykxwhbBjE08/eenfvmV6YIDu35Mf4ylqbMltPYuwzFltlgwJFq4l+KgFfSYrTQCE3u8jLATqAiw+xyrzZPMPa+XQGj4iynL+CAFcYsDYrPa2ACfAFq68djx/nI6mKYb5FQKgu5HZ9n+Q3MMRAjdClEZjVRA1sp8SBEs7Mwv79ztfeMt+6W+hrJSkL/tBoMISpN/PaoggblXMTmToEkoD/dub46Do8KdhC4y6RWAzSdZSnuGkV+dIrdtpjlFa1KoVE8EMxjfGsZldWGKzUkVUUQe8m5MPvx7H5dy7YuXNe4qAt5JRy8sDY4vwamYbVYOi0guAEGdf0Uku/mDoy5BQ8b1+yBpN8JwhI+9e2niynItJyae2zDRTWWE+I7vysj4KGGrdc7g=----ATTACHMENT:----NzY3OTE4NTA5ODE0MzgwMyAyMjAwNzQxNTgxODQxNzM3IDg4ODk1NzA0MTk3MDM0Nw==