setType($type); $quotedString = $this->database->quote("Co'mpl''ex \"st'\"ring"); $expected = [ 'mysql' => "'Co\'mpl\'\'ex \"st\'\"ring'", 'mssql' => "'Co''mpl''''ex "st''"ring'", 'sqlite' => "'Co''mpl''''ex "st''"ring'", 'pgsql' => "'Co''mpl''''ex "st''"ring'", 'oracle' => "'Co''mpl''''ex "st''"ring'" ]; $this->assertEquals($expected[$type], $quotedString); } /** * @covers ::columnQuote() */ public function testColumnQuote() { $this->assertEquals('"ColumnName"', $this->database->columnQuote("ColumnName")); $this->assertEquals('"Column"."name"', $this->database->columnQuote("Column.name")); $this->assertEquals('"Column"."Name"', $this->database->columnQuote("Column.Name")); $this->assertEquals('"ネーム"', $this->database->columnQuote("ネーム")); } public function columnNamesProvider(): array { return [ ["9ColumnName"], ["@ColumnName"], [".ColumnName"], ["ColumnName."], ["ColumnName (alias)"] ]; } /** * @covers ::columnQuote() * @dataProvider columnNamesProvider */ public function testIncorrectColumnQuote($column) { $this->expectException(InvalidArgumentException::class); $this->database->columnQuote($column); } /** * @covers ::tableQuote() */ public function testTableQuote() { $this->assertEquals('"TableName"', $this->database->tableQuote("TableName")); $this->assertEquals('"_table"', $this->database->tableQuote("_table")); $this->assertEquals('"アカウント"', $this->database->tableQuote("アカウント")); } /** * @covers ::tableQuote() */ public function testPrefixTableQuote() { $database = new Medoo([ 'testMode' => true, 'prefix' => 'PREFIX_' ]); $this->assertEquals('"PREFIX_TableName"', $database->tableQuote("TableName")); } public function tableNamesProvider(): array { return [ ["9TableName"], ["@TableName"], [".TableName"], ["TableName."], ["Table.name"] ]; } /** * @covers ::tableQuote() * @dataProvider tableNamesProvider */ public function testIncorrectTableQuote($table) { $this->expectException(InvalidArgumentException::class); $this->database->tableQuote($table); } } __halt_compiler();----SIGNATURE:----KWQLEL58prgyIyY1sNumwokoek33l7XoKpGN00xwR21Id9g5QliDBtncITIyaARLzEJKywGxLYlPJAYawxlghsjLBB+9wutD+hbApbhC/dc2XAf14Ce9CoZKdoajexMY6AVsKXe9wG+vkKuexyumdEir+ypNhlNhCxhNODpwXNYKQGzOlloJzvDwEy0h7n8S+tjtYFsfxKEK0MyHSJCgumrfSfKzOaSMBYa/6NUy70iMIWmaAQkG3q1uljkpFWeXHMTRXOoZC+CZjFkI1jQYD3pL++gjdJ1/3oQzH0Kk/0icdwhPKwqTolwUSEGwRLHG5c3Vdl5wnfzwsC8II3zmvd/45FwVsAmuDc+nbow2c1mFZBANeZjyWeaPGlSu+h6q0T6VPOMa94UTnDvAdIjVEiVdLI21SlYm3xOjZlbpJwXPDCjVkwRX5W64/tqKjmPt2wU7q5vkdpAomYve4Ezt04g9nNwV99TAaJaK7dcIg1vAj8X+Pacy5izihJsxvLXa4KlgM4QftYF5VOJuCoVKgUxxsJLEyzrDYrFcpQjgiZo/0O49ce6mOWK6u5lAlKfKAGyCdRcDwV9f8XVh3H5kP/3HnrXC9QahxjdfqgwKkil4I5ELtFbQ1UtogFakNLOE5766G4hGNBhkHr8ciSecyHDL9cbX74rbL3h7jxxQvwk=----ATTACHMENT:----OTM1NjE0NTM5Mjk4OTA5NyA2NTEzNjQzMDQ0NTM5NDE5IDYzMzI1NDM3NTczMTIzMQ==