module Mysql2ClientGeneralLogsTest
Public Instance Methods
db_init()
click to toggle source
# File lib/mysql2/client/general_logs_test.rb, line 13 def db_init @client.query("DROP DATABASE IF EXISTS `mysql2_client_general_logs_test`") @client.query("CREATE DATABASE `mysql2_client_general_logs_test`") @client.query("USE `mysql2_client_general_logs_test`") @client.query(<<-SQL) CREATE TABLE users ( `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` varchar(255) NOT NULL UNIQUE, `password` varchar(255) NOT NULL ); SQL @client.query(<<-SQL) INSERT INTO `users` (`name`, `password`) VALUES ('ksss', 'cheap-pass'), ('foo', 'fooo'), ('bar', 'barr') ; SQL @client.general_logs.clear end
e(s)
click to toggle source
# File lib/mysql2/client/general_logs_test.rb, line 34 def e(s) Mysql2::Client.escape(s) end
example_general_logs()
click to toggle source
# File lib/mysql2/client/general_logs_test.rb, line 67 def example_general_logs db_init @client.query("SELECT * FROM users WHERE name = '#{e("ksss")}'") @client.query("SELECT * FROM users WHERE name = '#{e("barr")}'") @client.query("SELECT * FROM users WHERE name = '#{e("foo")}'") puts @client.general_logs.map{|log| log.sql} puts @client.general_logs.map{|log| log.backtrace.find{|c| %r{/gems/} !~ c.to_s}.to_s.gsub(/.*?:/, '')} # Output: # SELECT * FROM users WHERE name = 'ksss' # SELECT * FROM users WHERE name = 'barr' # SELECT * FROM users WHERE name = 'foo' # in `example_general_logs' # in `example_general_logs' # in `example_general_logs' end
test_init(t)
click to toggle source
# File lib/mysql2/client/general_logs_test.rb, line 38 def test_init(t) if !@client.general_logs.kind_of?(Array) t.error("initial value expect Array class got #{@client.general_logs.class}") end if !@client.general_logs.empty? t.error("initial value expect [] got #{@client.general_logs}") end end
test_log_class(t)
click to toggle source
# File lib/mysql2/client/general_logs_test.rb, line 61 def test_log_class(t) if Mysql2::Client::GeneralLogs::Log.members != [:sql, :backtrace] t.error("expect Mysql2::Client::GeneralLogs::Log.members is [:sql, :backtrace] got #{Mysql2::Client::GeneralLogs::Log.members}") end end
test_main(m)
click to toggle source
# File lib/mysql2/client/general_logs_test.rb, line 4 def test_main(m) @client = Mysql2::Client.new( host: "127.0.0.1", username: "root", ) exit m.run @client.query("DROP DATABASE IF EXISTS `mysql2_client_general_logs_test`") end
test_values(t)
click to toggle source
# File lib/mysql2/client/general_logs_test.rb, line 47 def test_values(t) db_init @client.query("SELECT * FROM users WHERE name = '#{e("ksss")}'") @client.query("SELECT * FROM users WHERE name = '#{e("barr")}'") @client.query("SELECT * FROM users WHERE name = '#{e("foo")}'") if @client.general_logs.length != 3 t.error("expect log length 3 got #{@client.general_logs.length}") end if @client.general_logs.any?{|log| !log.kind_of?(Mysql2::Client::GeneralLogs::Log)} t.error("expect all collection item is instance of Mysql2::Client::GeneralLogs::Log got #{@client.general_logs.map(&:class).uniq}") end end