Module: Mysql2ClientGeneralLogTest
- Defined in:
- lib/mysql2/client/general_log_test.rb
Instance Method Summary collapse
- #db_init ⇒ Object
- #e(s) ⇒ Object
- #example_general_log ⇒ Object
- #test_init(t) ⇒ Object
- #test_log_class(t) ⇒ Object
- #test_main(m) ⇒ Object
- #test_values(t) ⇒ Object
Instance Method Details
#db_init ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/mysql2/client/general_log_test.rb', line 13 def db_init @client.query("DROP DATABASE IF EXISTS `mysql2_client_general_log_test`") @client.query("CREATE DATABASE `mysql2_client_general_log_test`") @client.query("USE `mysql2_client_general_log_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_log.clear end |
#e(s) ⇒ Object
34 35 36 |
# File 'lib/mysql2/client/general_log_test.rb', line 34 def e(s) Mysql2::Client.escape(s) end |
#example_general_log ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/mysql2/client/general_log_test.rb', line 71 def example_general_log 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_log.map{|log| log.sql} puts @client.general_log.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_log' # in `example_general_log' # in `example_general_log' end |
#test_init(t) ⇒ Object
38 39 40 41 42 43 44 45 |
# File 'lib/mysql2/client/general_log_test.rb', line 38 def test_init(t) if !@client.general_log.kind_of?(Array) t.error("initial value expect Array class got #{@client.general_log.class}") end if !@client.general_log.empty? t.error("initial value expect [] got #{@client.general_log}") end end |
#test_log_class(t) ⇒ Object
65 66 67 68 69 |
# File 'lib/mysql2/client/general_log_test.rb', line 65 def test_log_class(t) if Mysql2::Client::GeneralLog::Log.members != [:sql, :backtrace, :time] t.error("expect Mysql2::Client::GeneralLog::Log.members is [:sql, :backtrace, :time] got #{Mysql2::Client::GeneralLog::Log.members}") end end |
#test_main(m) ⇒ Object
4 5 6 7 8 9 10 11 |
# File 'lib/mysql2/client/general_log_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_log_test`") end |
#test_values(t) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/mysql2/client/general_log_test.rb', line 47 def test_values(t) db_init ret = @client.query("SELECT * FROM users WHERE name = '#{e("ksss")}'").first @client.query("SELECT * FROM users WHERE name = '#{e("barr")}'") @client.query("SELECT * FROM users WHERE name = '#{e("foo")}'") if @client.general_log.length != 3 t.error("expect log length 3 got #{@client.general_log.length}") end if @client.general_log.any?{|log| !log.kind_of?(Mysql2::Client::GeneralLog::Log)} t.error("expect all collection item is instance of Mysql2::Client::GeneralLog::Log got #{@client.general_log.map(&:class).uniq}") end expect = {"id"=>1, "name"=>"ksss", "password"=>"cheap-pass"} if ret != expect t.error("expect query output not change from #{expect} got #{ret}") end end |