Sha256: a3c360df38ff0c427f42f8452fc49376e3108f680626a5ccec85baf0985e2fc9

Contents?: true

Size: 1.16 KB

Versions: 16

Compression:

Stored size: 1.16 KB

Contents

require File.instance_eval { expand_path join(dirname(__FILE__), 'test_helper') }
require 'freighthopper'

class DefineAndAliasTest < Test::Unit::TestCase
  class SomeClass
    attr_reader :cache
    def foo() 5 end

    define_and_alias(:foo, :bar) {foo_without_bar + 5}
  
    def even?(number) number % 2 == 0 end
    
    define_and_alias :even?, :caching do |number|
      (@cache ||= {})[number] ||= even_without_caching?(number)
    end
  end
  
  context 'with a SomeClass' do
    setup {@object = SomeClass.new}

    should 'respond to foo_with_bar' do
      assert @object.respond_to?('foo_with_bar')
    end

    should 'respond to foo_without_bar' do
      assert @object.respond_to?('foo_without_bar')
    end

    should 'return 5 for foo_without_bar' do
      assert_foo_without_bar 5, @object
    end

    should 'return 10 for foo' do
      assert_foo 10, @object
    end

    should 'handle questionmark methods' do
      %w(even? even_without_caching? even_with_caching?).each do |method|
        assert @object.respond_to?(method)
      end
    end
  
    should 'pass arguments' do
      assert @object.even?(4)
      assert_length 1, @object.cache
    end
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
freighthopper-0.1.14 test/define_and_alias_test.rb
freighthopper-0.1.13 test/define_and_alias_test.rb
freighthopper-0.1.12 test/define_and_alias_test.rb
freighthopper-0.1.11 test/define_and_alias_test.rb
freighthopper-0.1.9 test/define_and_alias_test.rb
freighthopper-0.1.8 test/define_and_alias_test.rb
freighthopper-0.1.7 test/define_and_alias_test.rb
freighthopper-0.1.6 test/define_and_alias_test.rb
freighthopper-0.1.5 test/define_and_alias_test.rb
freighthopper-0.1.4 test/define_and_alias_test.rb
simply_stated-0.0.5 vendor/gems/ruby/1.8/gems/freighthopper-0.1.2/test/define_and_alias_test.rb
simply_stated-0.0.4 vendor/gems/ruby/1.8/gems/freighthopper-0.1.2/test/define_and_alias_test.rb
freighthopper-0.1.3 test/define_and_alias_test.rb
freighthopper-0.1.2 test/define_and_alias_test.rb
freighthopper-0.1.1 test/define_and_alias_test.rb
freighthopper-0.1.0 test/define_and_alias_test.rb