Module: Orocos::Test::Mocks

Included in:
SelfTest
Defined in:
lib/orocos/test/mocks.rb

Defined Under Namespace

Classes: FakeTaskContext

Instance Method Summary collapse

Instance Method Details

#mock_input_port(port_model) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/orocos/test/mocks.rb', line 14

def mock_input_port(port_model)
    port = flexmock("mock for #{port_model}")
    port.should_receive(:model).and_return(port_model)
    port_writer = flexmock("mock for input writer to #{port_model}")
    port_writer.should_receive(:connected?).and_return(false)
    port.should_receive(:writer).and_return(port_writer).by_default
    port
end

#mock_output_port(port_model) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/orocos/test/mocks.rb', line 23

def mock_output_port(port_model)
    port = flexmock("mock for #{port_model}")
    port.should_receive(:model).and_return(port_model)
    port.should_receive(:connected?).and_return(false)
    port_reader = flexmock("mock for output reader from #{port_model}")
    port_reader.should_receive(:connected?).and_return(false)
    port.should_receive(:reader).and_return(port_reader).by_default
    port
end

#mock_task_context(orogen_model) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/orocos/test/mocks.rb', line 33

def mock_task_context(orogen_model)
    mock = flexmock(FakeTaskContext.new)
    mock.should_receive(:model).and_return(orogen_model)
    mock.should_receive(:port_names).and_return(orogen_model.each_input_port.map(&:name).to_a + orogen_model.each_output_port.map(&:name))
    orogen_model.each_input_port do |port_model|
        port = mock_input_port(port_model)
        mock.should_receive(:port).with(port_model.name).and_return(port)
        mock.should_receive(:port).with(port_model.name, FlexMock.any).and_return(port)
    end
    orogen_model.each_output_port do |port_model|
        port = mock_output_port(port_model)
        mock.should_receive(:port).with(port_model.name).and_return(port)
        mock.should_receive(:port).with(port_model.name, FlexMock.any).and_return(port)
    end
    mock
end

#mock_task_context_model(&block) ⇒ Object



7
8
9
10
11
12
# File 'lib/orocos/test/mocks.rb', line 7

def mock_task_context_model(&block)
    project = OroGen::Spec::Project.new(Orocos.default_loader)
    interface = OroGen::Spec::TaskContext.new(project)
    interface.instance_eval(&block)
    flexmock(interface)
end