Sha256: 247c320ad7c517d007afb958ad288a51dbea6e8449a32f6cc60323962d65d94a

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

require File.expand_path(File.dirname(__FILE__) + "/../test_helper")
require 'method_cleanout'

class MethodCleanoutTest < Test::Unit::TestCase
  class Victim
    OriginalMethods = instance_methods
    include Hardmock::MethodCleanout
  end
  
  def setup
    @victim = Victim.new
  end

  def test_should_remove_most_methods_from_a_class
    expect_removed = Victim::OriginalMethods.reject { |m| 
      Hardmock::MethodCleanout::SACRED_METHODS.include?(m)
    }
    expect_removed.each do |m|
      assert !@victim.respond_to?(m), "should not have method #{m}"
    end
  end

  def test_should_leave_the_sacred_methods_defined
    Hardmock::MethodCleanout::SACRED_METHODS.each do |m|
      assert @victim.respond_to?(m)
    end
  end

  def test_should_include_certain_important_methods_in_the_sacred_methods_list
    %w|__id__ __send__ equal? object_id send nil? class kind_of? respond_to? inspect method to_s instance_variables instance_eval|.each do |m|
      assert Hardmock::MethodCleanout::SACRED_METHODS.include?(m), "important method #{m} is not included in SACRED_METHODS"
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
minilab-1.0.0-mswin32 vendor/hardmock/test/unit/method_cleanout_test.rb