ENV['RAILS_ENV'] = 'test' require '../../../config/environment' require 'test/unit' require 'pgsql_stats' require 'test/test_helper' class CollectorTest < Test::Unit::TestCase include TestHelper def test_server_activity all_procs = PgsqlStats::Collector.server_activity assert all_procs.size > 0 db_oid = all_procs.first.database_oid db_name = all_procs.first.database_name db_procs = PgsqlStats::Collector.server_activity(db_oid) db_procs.each { |p| assert_equal db_oid, p.database_oid } db_procs = PgsqlStats::Collector.server_activity(db_name) db_procs.each { |p| assert_equal db_oid, p.database_oid } end def test_databases assert_nothing_raised { PgsqlStats::Collector.databases } end def test_database assert_nothing_raised do db = PgsqlStats::Collector.databases.first assert_not_nil db assert_equal db.oid, PgsqlStats::Collector.database(db.oid).oid assert_equal db.oid, PgsqlStats::Collector.database(db.name).oid end end def test_current_database assert_nothing_raised do assert_not_nil PgsqlStats::Collector.current_database end end def test_all_tables assert_nothing_raised { PgsqlStats::Collector.all_tables } end def test_system_tables assert_nothing_raised { PgsqlStats::Collector.system_tables } end def test_user_tables assert_nothing_raised { PgsqlStats::Collector.user_tables } end def test_all_indexes assert_nothing_raised { PgsqlStats::Collector.all_indexes } end def test_system_indexes assert_nothing_raised { PgsqlStats::Collector.system_indexes } end def test_user_indexes assert_nothing_raised { PgsqlStats::Collector.user_indexes } end def test_all_sequences assert_nothing_raised { PgsqlStats::Collector.all_sequences } end def test_system_sequences assert_nothing_raised { PgsqlStats::Collector.system_sequences } end def test_user_sequences assert_nothing_raised { PgsqlStats::Collector.user_sequences } end def force_table_scan(table) PgsqlStats::Collector.connection.select_all("SELECT * FROM #{table.name}") wait_for_statistics_report table.refresh table end def test_reset_counters tables = PgsqlStats::Collector.user_tables table = tables.find(lambda { force_table_scan(tables.first) }) { |t| t.sequential_scans > 0 } scans = table.sequential_scans assert scans > 0 assert_nothing_raised { PgsqlStats::Collector.reset_counters } wait_for_statistics_report table.refresh assert table.sequential_scans < scans end end