Class SpringSetTest
In: lib/spring_set.rb
Parent: Test::Unit::TestCase

Methods

Public Instance methods

tests

[Source]

# File lib/spring_set.rb, line 95
  def test_simple
    s1 = Spring.new('hello', 'world')
    s2 = Spring.new('bonjour', 'tout', 'monde')
    s = SpringSet.new(s1, s2)
    assert_equal(s1.num_collecter, s.num_collecter(s1.object_id))
    assert_equal(s2.num_collecter, s.num_collecter(s2.object_id))
    assert_equal(s1.size, s.spring_size(s1.object_id))
    assert_equal(s2.length, s.spring_length(s2.object_id))
    thread = Thread.new do
      sleep(0.0001)
      assert_equal(2, s.size)
      assert_equal(2, s.length)
      assert_equal(s2, s.get_most_full)
      assert_equal(s1, s.get_most_empty)
      s1.sign_up(thread.object_id)
      assert_equal(s1.num_collecter, s.num_collecter(s1.object_id))
      assert_equal(s1, s.get_most_busy)
      assert_equal(s2, s.get_most_free)
      s2.sign_up(thread.object_id)
      assert_equal(s2.num_collecter, s.num_collecter(s2.object_id), 'bad num collecter')
      assert_equal('bonjour', s2.get(thread.object_id))
      assert_equal(s2.size, s.spring_size(s2.object_id), 'bad size')
      assert_equal('tout', s2.get(thread.object_id))
      assert_equal(s2.size, s.spring_size(s2.object_id))
      assert_equal('monde', s2.get(thread.object_id))
      assert_equal(s2.size, s.spring_size(s2.object_id))
      assert_equal(nil, s2.get(thread.object_id))
      assert_equal(s2.size, s.spring_size(s2.object_id))
      assert_equal(0, s.spring_size(s2.object_id))
      assert_equal(s1, s.get_most_full)
      assert_equal(s2, s.get_most_empty)
    end
    thread.join
  end

[Validate]