ENV['RAILS_ENV'] = 'test' require '../../../config/environment' require 'test/unit' require 'pgsql_stats' require 'test/test_helper' class DatabaseTest < Test::Unit::TestCase include TestHelper def setup @db = PgsqlStats::Database.new({ "datid" => "1", "datname" => "test", "xact_commit" => "100", "xact_rollback" => "50", "blks_read" => "100", "blks_hit" => "900" }) end def test_initialize assert_equal 1, @db.oid assert_equal "test", @db.name assert_equal 100, @db.commits assert_equal 50, @db.rollbacks assert_equal 100, @db.blocks_read assert_equal 900, @db.cache_hits end def test_refresh db = PgsqlStats::Collector.current_database oid = db.oid xacts = db.total_transactions PgsqlStats::Collector.connection.select_all("SELECT * FROM #{PgsqlStats::Collector.all_tables.first.name}") wait_for_statistics_report db.refresh assert_equal oid, db.oid assert db.total_transactions > xacts end def test_server_processes db = PgsqlStats::Collector.current_database processes = db.server_processes assert_not_nil processes processes.each { |p| assert_equal db.oid, p.database_oid } end def test_total_transactions assert_equal 150, @db.total_transactions end def test_cache_hit_rate assert_in_delta 90, @db.cache_hit_rate, 0.001 end end