Module: Mysql2ClientGeneralLogsTest
- Defined in:
- lib/mysql2/client/general_logs_test.rb
Instance Method Summary collapse
- #db_init ⇒ Object
- #e(s) ⇒ Object
- #example_general_logs ⇒ 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_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) ⇒ Object
34 35 36 |
# File 'lib/mysql2/client/general_logs_test.rb', line 34 def e(s) Mysql2::Client.escape(s) end |
#example_general_logs ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# 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) ⇒ Object
38 39 40 41 42 43 44 45 |
# 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) ⇒ Object
61 62 63 64 65 |
# 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) ⇒ Object
4 5 6 7 8 9 10 11 |
# 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) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 |
# 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 |