ENV['RAILS_ENV'] = 'test' require '../../../config/environment' require 'test/unit' require 'pgsql_stats' require 'test/test_helper' class IndexTest < Test::Unit::TestCase include TestHelper def setup @index = PgsqlStats::Index.new(PgsqlStats::Collector.connection, { "indexrelid" => "1", "relid" => "2", "indexrelname" => "index", "relname" => "table", "schemaname" => "test", "idx_scan" => "100", "idx_tup_read" => "50", "idx_tup_fetch" => "40" }, { "idx_blks_read" => "100", "idx_blks_hit" => "900" }) end def test_initialize assert_equal 1, @index.oid assert_equal 2, @index.table_oid assert_equal "index", @index.name assert_equal "table", @index.table_name assert_equal "test", @index.schema_name assert_equal 100, @index.scans assert_equal 50, @index.entries_read assert_equal 40, @index.rows_fetched assert_equal 100, @index.blocks_read assert_equal 900, @index.cache_hits end def test_refresh index = PgsqlStats::Collector.all_indexes.first oid = index.oid assert_nothing_raised { index.refresh } assert_equal oid, index.oid end def test_table index = PgsqlStats::Collector.all_indexes.find { |i| !i.table_name.blank? } assert_nothing_raised { assert_not_nil index.table } end def test_cache_hit_rate assert_in_delta 90, @index.cache_hit_rate, 0.001 end def test_pages index = PgsqlStats::Collector.all_indexes.first assert_nothing_raised { index.pages } end end