require_relative "helper" module Parfait class TestFactory < ParfaitTest def setup super type = Parfait.object_space.get_type_by_class_name(:Integer) @factory = Factory.new(type , 40) 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_test_page assert_equal 40 , @factory.page_size end def test_first_is_reserve @factory.get_next_object assert_equal Parfait::Integer , @factory.reserve.class 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 16 , count end class BigFactoryTest < BigParfaitTest def setup super type = Parfait.object_space.get_type_by_class_name(:Integer) @factory = Factory.new(type , 300) end def test_chain_length count = 0 start = @factory.get_next_object while( start ) start = start.next_integer count += 1 end assert_equal 300-15 , count end def test_page assert_equal 300 , @factory.page_size end end end end