Sha256: 6e85408739a8e546b208d59805fe29766efb948bd5887e60cf10973f03da4953

Contents?: true

Size: 1.52 KB

Versions: 7

Compression:

Stored size: 1.52 KB

Contents

# encoding: utf-8

module CallControllerTestHelpers
  include FlexMock::ArgumentTypes

  def self.included(test_case)
    test_case.let(:call_id)     { new_uuid }
    test_case.let(:call)        { Adhearsion::Call.new }
    test_case.let(:block)       { nil }
    test_case.let(:controller)  { new_controller test_case.describes }

    test_case.subject { controller }

    test_case.before do
      flexmock subject
      flexmock controller
      flexmock call, :write_command => true, :id => call_id
    end
  end

  def new_controller(target = nil)
    case target
    when Class
      raise "Your described class should inherit from Adhearsion::CallController" unless target.ancestors.include?(Adhearsion::CallController)
      target
    when Module, nil
      Class.new Adhearsion::CallController
    end.new call, :doo => :dah, &block
  end

  def expect_message_waiting_for_response(message, fail = false)
    expectation = controller.should_receive(:write_and_await_response).once.with message
    if fail
      expectation.and_raise fail
    else
      expectation.and_return message
    end
  end

  def expect_message_of_type_waiting_for_response(message)
    controller.should_receive(:write_and_await_response).once.with(message.class).and_return message
  end

  def expect_component_execution(component, fail = false)
    expectation = controller.should_receive(:execute_component_and_await_completion).once.with(component)
    if fail
      expectation.and_raise fail
    else
      expectation.and_return component
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
adhearsion-2.3.0 spec/support/call_controller_test_helpers.rb
adhearsion-2.2.1 spec/support/call_controller_test_helpers.rb
adhearsion-2.2.0 spec/support/call_controller_test_helpers.rb
adhearsion-2.1.3 spec/support/call_controller_test_helpers.rb
adhearsion-2.1.2 spec/support/call_controller_test_helpers.rb
adhearsion-2.1.1 spec/support/call_controller_test_helpers.rb
adhearsion-2.1.0 spec/support/call_controller_test_helpers.rb