rubyx/test/parfait/test_layout.rb

83 lines
2.2 KiB
Ruby
Raw Normal View History

2015-08-08 17:08:47 +02:00
require_relative "../helper"
class TestLayout < MiniTest::Test
def setup
2015-10-22 17:16:29 +02:00
@mess = Register.machine.boot.space.first_message
2015-08-08 17:08:47 +02:00
end
def test_message_layout
layout = @mess.get_layout
assert layout
assert @mess.instance_variable_defined :next_message
assert_equal @mess.next_message , @mess.get_instance_variable(:next_message)
end
def test_message_by_index
assert_equal @mess.next_message , @mess.get_instance_variable(:next_message)
index = @mess.get_layout.variable_index :next_message
assert_equal 2 , index
2015-08-08 17:08:47 +02:00
assert_equal @mess.next_message , @mess.internal_object_get(index)
end
def test_layout_index
assert_equal @mess.get_layout , @mess.internal_object_get(0) , "mess"
2015-08-08 17:08:47 +02:00
end
2015-10-16 17:34:54 +02:00
def test_forbidden_index_of
assert_raises(RuntimeError) { @mess.get_layout.index_of(:name)}
end
def test_inspect
assert @mess.get_layout.inspect.start_with?("Layout")
end
def test_layout_is_first
layout = @mess.get_layout
assert_equal 1 , layout.variable_index(:layout)
end
def test_length
assert_equal 8 , @mess.get_layout.object_instance_length , @mess.get_layout.inspect
end
def test_no_index_below_1
2015-08-08 17:08:47 +02:00
layout = @mess.get_layout
names = layout.object_instance_names
assert_equal 8 , names.get_length , names.inspect
2015-08-08 17:08:47 +02:00
names.each do |n|
assert layout.variable_index(n) >= 1
2015-08-08 17:08:47 +02:00
end
end
def test_class_layout
2015-10-22 17:16:29 +02:00
oc = Register.machine.boot.space.get_class_by_name( :Object )
assert_equal Parfait::Class , oc.class
layout = oc.object_layout
assert_equal Parfait::Layout , layout.class
assert_equal 1 , layout.object_instance_names.get_length
assert_equal layout.first , :layout
end
def test_attribute_set
@mess.receiver = 55
assert_equal 55 , @mess.receiver
end
# not really parfait test, but related and no other place currently
def test_reg_index
message_ind = Register.resolve_index( :message , :receiver )
assert_equal 3 , message_ind
@mess.receiver = 55
assert_equal 55 , @mess.internal_object_get(message_ind)
end
def test_object_layout
assert_equal 2 , @mess.get_layout.variable_index(:next_message)
end
def test_remove_me
layout = @mess.get_layout
assert_equal layout , @mess.internal_object_get(0)
end
2015-08-08 17:08:47 +02:00
end