rubyx/test/parfait/test_factory.rb
2019-02-08 23:03:23 +02:00

61 lines
1.4 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_default_page
assert_equal 1024 , Factory.page_size
end
def test_default_reserve
assert_equal 10 , Factory.reserve_size
end
def test_set_page
assert_equal 10 , Factory.page_size = 10
Factory.page_size = 1024
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