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:----lLPVGTy7xEHb+CAJIEBIIj79EWYgBm4RL9tq8jFbi8hGW6s00MeHIJvXzmDD8BmDJnCQqTqcZW8iE3gNEz9DaYYS1JhfRrYORFNPCg6VDkaiTzhMFRMYNiJXXisb4VlHk6+cC8YqEPoOKYKCR+c+mF9h5GQFGBBnQJQP4WVxbJTzfuWX65CwShqJ0nylPzLio/kTVB0VaX2F8jvsOirYJoIzyhBOiewCsDRZKp+RLAMUTwWbKEQh55y8LdFddCiQzCc57kIp1NFxB0fOC17cxgrFOU3z+/3YM9KrqSE1KWqYs34mkOwUWBdYXbUBzHBbm7X8Gy+zSXNf5ED+T6sR8HcO3VjBnthONN+mlhXwK5uBAhiVY3Jlc8F5i0LCnC5UlpE8equnlQN0Yb0cVQWgyw0jmSy5meRITFemRFIEogRio4HFAVNRBcuZFkfqyMoW94EWmY+PydCydC6rUL21FLRpvvtue4U/wP9Ls28VWJWMNVH9VINt93Z1KWOojbOglIyLgc25rUjBMUALu8fEqoZn+K0s69SNpX90CKDx8NN/wF3PAHXQP57RzKHu7HOlQgIwUWJwyFtNPQyts6tPSbBP25W/3jn0UYRoGKu/DFx/DpeoWRSEbjHlRB/FxI9rqg2OFg3uH85OjDr9ilOgrj2DWvVrJXlC0I9A6VjWKXw=----ATTACHMENT:----NDM5MzUzMTE4MjI0ODMxNyAzNTQ5MzkyNTcwNTQ2MTI0IDE3NDY2MTMyMTQyMzYwMzU=