/
asterisk_spec.rb
76 lines (62 loc) · 1.94 KB
/
asterisk_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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' }
let(:connection) { Asterisk.new options }
subject { connection }
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
it 'shuts down the translator' do
subject.translator.expects(:shutdown!).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