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:----heYdp0fRxHUMNPVd9TaLB0k2zv8UQi6VGcgTtCiSALpe78jcq6bWpVNak6O/L7Hq9SCfjIC992mqN3ahBwLBVmAYroJgpIZVoYyEofXVpV2lbpvg9IOV6D0vVm4EGlGjW5Xw6Z/l2Pxmie6uYQHp+r4T5Ffir7Adf6BSz34bzGcgJxo1tS0S+4hSBXz0HIWqt70ydKyfRcU2UwG6+lKdgxaTUQD9dGIYTP7OxQiY4yqXZ6W1hSq7XPO3popxG+DT6kq9gVBwpbIxkt79HYWwWDyNmV5yRiqjJQRG4TtE4uxQPMv8oGkNQYom5nskvyhFe/+9SV5sG8L0BE/iN+QW9Juknv/f6hEDsBmYQRZkQfcDUNNZiX8EGH3yQiJNrBfgjSEJjDINdZDfw+rt5lU3xcMyPAQ6ElswEarvXxhcdkmjR0iHaEzrgpg9OvMnEydhc6JkyaQ5KvOgsDx58QWr2i0UGIcKH+JbTDlpampn/z/VOqWxQ/pfeqDYajw22YsITPJK4THJYQitEyFePQ8fT5Tr9nXvgQxAMlgYclaHQS9qIpOLqqNu1JgGUYsa2O0KJ4AY4OAJgERP7eoM577XnKpItJwMcA/nm6i7bOxVxOQ+ucYepvGFEW3Jk7XZ2s64WtZkDLce9UFafD4HAdfLN3QRQOvXZJwQGXBgWEKXNkY=----ATTACHMENT:----NzU1ODQzNjA0NjE5MTIyIDU0NjUwNDIyMjA0NTE0MTkgNDI5MTY3MjUyNDEyMzI4NQ==