rubyx/test/vm/parfait/test_class.rb

49 lines
1.4 KiB
Ruby
Raw Normal View History

2015-10-25 12:19:18 +01:00
require_relative "../helper"
class TestClass < MiniTest::Test
def setup
Register.machine.boot
@space = Parfait.object_space
2015-10-25 12:19:18 +01:00
@try = @space.create_class :Try , :Object
end
def test_type_forclass
assert_equal "Class(Space)" , @space.get_type.object_class.inspect
assert_equal :Space , @space.get_type.object_class.name
2015-10-25 12:19:18 +01:00
end
def test_new_superclass_name
assert_equal :Object , @try.super_class_name
end
2015-10-25 12:19:18 +01:00
def test_new_superclass
assert_equal "Class(Object)" , @try.super_class.inspect
2015-10-25 12:19:18 +01:00
end
def test_new_methods
assert_equal @try.method_names.class, @try.instance_methods.class
assert_equal @try.method_names.get_length , @try.instance_methods.get_length
end
def test_remove_nothere
2016-12-15 13:00:34 +01:00
assert !@try.remove_instance_method(:foo)
2015-10-25 12:19:18 +01:00
end
2016-12-15 21:15:40 +01:00
def test_resolve
assert_nil @try.resolve_method :foo
end
def test_remove_method
assert_equal false , @try.remove_instance_method( :foo)
end
def test_add_method
assert_raises{ @try.add_instance_method(nil)}
end
2017-01-15 13:21:57 +01:00
def test_add_instance_variable_changes_type
before = @space.get_class.instance_type
@space.get_class.add_instance_variable(:counter , :Integer)
assert before != @space.get_class.instance_type
end
def test_add_instance_variable_changes_type_hash
before = @space.get_class.instance_type.hash
@space.get_class.add_instance_variable(:counter , :Integer)
assert before != @space.get_class.instance_type.hash
end
2015-10-25 12:19:18 +01:00
end