def test_when_executing_then_handle(mocker):
    on_handle_stub = mocker.stub(name='on_handle_stub')
    on_unregister_stub = mocker.stub(name='on_unregister_stub')
    command = Command([StubHandler(on_handle_stub, on_unregister_stub)])

    command.execute(HANDLED_DATA)

    on_handle_stub.assert_called_once_with(None)
    on_unregister_stub.assert_called_once()
def test_given_multiple_handlers_when_executing_then_handle(mocker):
    on_handle_stub = mocker.stub(name='on_handle_stub')
    on_unregister_stub = mocker.stub(name='on_unregister_stub')
    command = Command([
        StubHandler(on_handle_stub, on_unregister_stub),
        StubHandler(on_handle_stub, on_unregister_stub)
    ])

    command.execute(HANDLED_DATA)

    on_handle_stub.assert_has_calls([call(None), call(ONCE_HANDLED_DATA)])
    assert on_unregister_stub.call_count == 2