rubyx/test/parfait/test_factory.rb
Torsten Ruger ea7f3c9653 remove the last_object from chain
also tried to keep the first around as was done in space
partially to not have to add the consrtants seperately
didn't work, as chain gets broken
also this has to be redone anyway
2018-08-29 21:05:54 +03:00

51 lines
1.2 KiB
Ruby

require_relative "helper"
module Parfait
class TestFactory < ParfaitTest
def setup
super
@factory = Factory.new Parfait.object_space.get_type_by_class_name(:Integer)
end
def test_ok
assert @factory
end
def test_name_ok
assert @factory.attribute_name.to_s.start_with?("next")
end
def test_get_next
assert_nil @factory.get_next_for( Integer.new(1))
end
def test_no_next
assert_nil @factory.next_object
assert_nil @factory.reserve
end
def test_get_next_object
assert_equal Parfait::Integer , @factory.get_next_object.class
end
def test_first_is_reserve
@factory.get_next_object
assert_equal Parfait::Integer , @factory.reserve.class
end
def test_chain_length
count = 0
start = @factory.get_next_object
while( start )
start = start.next_integer
count += 1
end
assert_equal 1024 - 10 , count
end
def test_reserve_length
count = 0
start = @factory.get_next_object
start = @factory.reserve
while( start )
start = start.next_integer
count += 1
end
assert_equal 11 , count
end
end
end