start simple with code listner

This commit is contained in:
Torsten Ruger
2018-06-02 16:34:44 +03:00
parent aa6707337a
commit 91c7903848
4 changed files with 51 additions and 8 deletions

View File

@ -0,0 +1,31 @@
require_relative "helper"
module Risc
module Position
# tests that require a boot and test propagation
class TestcodeListener < MiniTest::Test
def setup
Risc.machine.boot
@binary = Parfait::BinaryCode.new(1)
@method = Parfait.object_space.types.values.first.methods
@label = Risc.label("hi","ho")
end
def test_has_init
CodeListener.init(@binary)
assert Position.get(@binary)
end
def test_init_listner
@binary.extend_one
CodeListener.init(@binary)
pos = Position.get(@binary)
assert !pos.event_table[:position_changed].empty?
end
def test_not_init_listner
CodeListener.init(@binary)
pos = Position.get(@binary)
assert pos.event_table[:position_changed].empty?
end
end
end
end

View File

@ -7,8 +7,8 @@ module Risc
def setup
@object = Dummy.new
@dependent = Dummy.new
@pos = Position.set(@object,0)
Position.set(@dependent,0)
@pos = ObjectPosition.new(@object,0)
ObjectPosition.new(@dependent,0)
@listener = ObjectListener.new(@dependent)
end
def test_register
@ -16,13 +16,13 @@ module Risc
end
def test_no_fire
@pos.register_event(:position_changed , self)
@pos = Position.set(@object,0)
assert_equal 0 , Position.get(@dependent).at
Position.set_to(@pos,0)
assert_equal 0 , Position.get(@object).at
end
def test_reset
@pos.register_event(:position_changed , @listener)
@pos = Position.set(@object,4)
assert_equal 4 , Position.get(@dependent).at
Position.set_to(@pos,4)
assert_equal 0 , Position.at(4).at
end
end
end