Class SpringTest
In: lib/spring.rb
Parent: Test::Unit::TestCase

Methods

Classes and Modules

Class SpringTest::Obs

Public Instance methods

tests

[Source]

# File lib/spring.rb, line 99
  def test_simple
    s = Spring.new('hello', 'world')
    q = Queue.new
    thread = Thread.new do
      s.add_observer(q.pop)
      assert_equal(2, s.size)
      assert_equal(2, s.length)
      assert_nil(s.get(thread.object_id))
      s.sign_up(thread.object_id)
      assert_equal(1, s.num_collecter)
      assert_equal('hello', s.get(thread.object_id))
      assert_equal('world', s.get(thread.object_id))
    end
    o = Obs.new(s.object_id,
                [Spring::SIGN_UP, Spring::GET, Spring::GET],
                thread.object_id,
                self)
    q.push(o)
    thread.join
    assert_equal(true, o.updated, 'not visited at all')
    assert_equal([], o.msg_seq)
  end

tools

[Source]

# File lib/spring.rb, line 124
  def test_update(r_s_id, r_msg, r_t_id, s_id, msg, t_id)
    assert_equal(r_t_id, t_id, 'bad collecter id')
    assert_equal(r_s_id, s_id, 'bad spring id')
    assert_equal(r_msg.shift, msg, 'bad message')
  end

[Validate]