Sha256: 19aa454f8d143585f471bfbebfd201a3fa9629423ff6d1359c34c13c73c63628

Contents?: true

Size: 1.77 KB

Versions: 3

Compression:

Stored size: 1.77 KB

Contents

require 'spec_helper'

module Punchblock
  module Connection
    describe Asterisk do
      let :options do
        {
          :host     => '127.0.0.1',
          :port     => 5038,
          :username => 'test',
          :password => 'test'
        }
      end

      let(:mock_event_handler) { stub_everything 'Event Handler' }

      subject { Asterisk.new options }

      before do
        subject.event_handler = mock_event_handler
      end

      its(:ami_client) { should be_a RubyAMI::Client }

      it 'should set the connection on the translator' do
        subject.translator.connection.should be subject
      end

      describe '#run' do
        it 'starts the RubyAMI::Client' do
          subject.ami_client.expects(:start).once
          subject.run
        end
      end

      describe '#stop' do
        it 'stops the RubyAMI::Client' do
          subject.ami_client.expects(:stop).once
          subject.stop
        end
      end

      it 'sends events from RubyAMI to the translator' do
        event = mock 'RubyAMI::Event'
        subject.translator.expects(:handle_ami_event!).once.with event
        subject.ami_client.handle_event event
      end

      describe '#write' do
        it 'sends a command to the translator' do
          command = mock 'Command'
          options = {:foo => :bar}
          subject.translator.expects(:execute_command!).once.with command, options
          subject.write command, options
        end
      end

      describe 'when a rayo event is received from the translator' do
        it 'should call the event handler with the event' do
          offer = Event::Offer.new
          offer.call_id = '9f00061'

          mock_event_handler.expects(:call).once.with offer
          subject.handle_event offer
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
punchblock-0.6.2 spec/punchblock/connection/asterisk_spec.rb
punchblock-0.6.1 spec/punchblock/connection/asterisk_spec.rb
punchblock-0.6.0 spec/punchblock/connection/asterisk_spec.rb