Sha256: 96baff1064dd05b3811cae78479984f7a17617dfc2da1f73c820c8b560290ddd

Contents?: true

Size: 860 Bytes

Versions: 1

Compression:

Stored size: 860 Bytes

Contents

require(File.dirname(__FILE__)+'/test_helpers.rb')


class StatsamplePromiseAfterTestCase < MiniTest::Unit::TestCase
  class ExpensiveClass
    extend Statsample::PromiseAfter
    attr_reader :a, :dirty
    def initialize
      @a=nil
      @b=nil
      @dirty=false
    end
    def compute
      @a="After"
      @b="After"
      @dirty=true
    end
    def a
      @a.nil? ? nil : "@a=#{@a}"
    end
    def b
      "@b=#{@b}"
    end
    promise_after :compute, :a
  end
  def setup
    @ec=ExpensiveClass.new
  end
  def test_promise_after_before
    assert_equal(nil, @ec.instance_variable_get("@a")) 
    assert_equal(nil, @ec.instance_variable_get("@b")) 
    assert_equal("@b=",@ec.b)
    refute(@ec.dirty) 
    # Calling method a active compute
    assert_equal("@a=After", @ec.a) 
    assert(@ec.dirty)
    assert_equal("@b=After", @ec.b) 
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
statsample-0.8.0 test/test_promise_after.rb