punchblock 0.9.2 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/CHANGELOG.md +34 -21
- data/Rakefile +20 -0
- data/lib/punchblock/client/component_registry.rb +2 -0
- data/lib/punchblock/client.rb +2 -2
- data/lib/punchblock/command/accept.rb +2 -0
- data/lib/punchblock/command/answer.rb +2 -0
- data/lib/punchblock/command/dial.rb +2 -0
- data/lib/punchblock/command/hangup.rb +2 -0
- data/lib/punchblock/command/join.rb +2 -0
- data/lib/punchblock/command/mute.rb +2 -0
- data/lib/punchblock/command/redirect.rb +2 -0
- data/lib/punchblock/command/reject.rb +3 -1
- data/lib/punchblock/command/unjoin.rb +2 -0
- data/lib/punchblock/command/unmute.rb +2 -0
- data/lib/punchblock/command.rb +2 -0
- data/lib/punchblock/command_node.rb +2 -0
- data/lib/punchblock/component/asterisk/agi/command.rb +4 -2
- data/lib/punchblock/component/asterisk/agi.rb +2 -0
- data/lib/punchblock/component/asterisk/ami/action.rb +4 -2
- data/lib/punchblock/component/asterisk/ami.rb +2 -0
- data/lib/punchblock/component/asterisk.rb +2 -0
- data/lib/punchblock/component/component_node.rb +2 -0
- data/lib/punchblock/component/input.rb +2 -0
- data/lib/punchblock/component/output.rb +2 -0
- data/lib/punchblock/component/record.rb +2 -0
- data/lib/punchblock/component/stop.rb +2 -0
- data/lib/punchblock/component.rb +2 -0
- data/lib/punchblock/connection/asterisk.rb +4 -1
- data/lib/punchblock/connection/connected.rb +2 -0
- data/lib/punchblock/connection/generic_connection.rb +5 -0
- data/lib/punchblock/connection/xmpp.rb +5 -6
- data/lib/punchblock/connection.rb +2 -0
- data/lib/punchblock/core_ext/blather/stanza/presence.rb +2 -0
- data/lib/punchblock/core_ext/blather/stanza.rb +2 -0
- data/lib/punchblock/core_ext/ruby.rb +1 -12
- data/lib/punchblock/disconnected_error.rb +2 -0
- data/lib/punchblock/event/answered.rb +2 -0
- data/lib/punchblock/event/asterisk/ami/event.rb +3 -1
- data/lib/punchblock/event/asterisk/ami.rb +2 -0
- data/lib/punchblock/event/asterisk.rb +2 -0
- data/lib/punchblock/event/complete.rb +3 -1
- data/lib/punchblock/event/dtmf.rb +2 -0
- data/lib/punchblock/event/end.rb +2 -0
- data/lib/punchblock/event/joined.rb +2 -0
- data/lib/punchblock/event/offer.rb +6 -0
- data/lib/punchblock/event/ringing.rb +2 -0
- data/lib/punchblock/event/unjoined.rb +2 -0
- data/lib/punchblock/event.rb +2 -0
- data/lib/punchblock/has_headers.rb +3 -1
- data/lib/punchblock/header.rb +2 -0
- data/lib/punchblock/key_value_pair_node.rb +2 -0
- data/lib/punchblock/media_container.rb +2 -0
- data/lib/punchblock/media_node.rb +2 -0
- data/lib/punchblock/protocol_error.rb +2 -0
- data/lib/punchblock/rayo_node.rb +4 -3
- data/lib/punchblock/ref.rb +2 -0
- data/lib/punchblock/translator/asterisk/call.rb +80 -26
- data/lib/punchblock/translator/asterisk/component/asterisk/agi_command.rb +3 -1
- data/lib/punchblock/translator/asterisk/component/asterisk/ami_action.rb +3 -1
- data/lib/punchblock/translator/asterisk/component/asterisk.rb +2 -0
- data/lib/punchblock/translator/asterisk/component/input.rb +4 -2
- data/lib/punchblock/translator/asterisk/component/output.rb +21 -3
- data/lib/punchblock/translator/asterisk/component.rb +2 -0
- data/lib/punchblock/translator/asterisk.rb +50 -20
- data/lib/punchblock/translator.rb +2 -0
- data/lib/punchblock/version.rb +3 -1
- data/lib/punchblock.rb +2 -0
- data/punchblock.gemspec +2 -2
- data/spec/capture_warnings.rb +32 -0
- data/spec/punchblock/client/component_registry_spec.rb +2 -0
- data/spec/punchblock/client_spec.rb +3 -1
- data/spec/punchblock/command/accept_spec.rb +3 -1
- data/spec/punchblock/command/answer_spec.rb +3 -1
- data/spec/punchblock/command/dial_spec.rb +12 -10
- data/spec/punchblock/command/hangup_spec.rb +3 -1
- data/spec/punchblock/command/join_spec.rb +11 -9
- data/spec/punchblock/command/mute_spec.rb +3 -1
- data/spec/punchblock/command/redirect_spec.rb +5 -3
- data/spec/punchblock/command/reject_spec.rb +7 -5
- data/spec/punchblock/command/unjoin_spec.rb +7 -5
- data/spec/punchblock/command/unmute_spec.rb +3 -1
- data/spec/punchblock/command_node_spec.rb +9 -7
- data/spec/punchblock/component/asterisk/agi/command_spec.rb +21 -19
- data/spec/punchblock/component/asterisk/ami/action_spec.rb +19 -17
- data/spec/punchblock/component/component_node_spec.rb +5 -3
- data/spec/punchblock/component/input_spec.rb +51 -49
- data/spec/punchblock/component/output_spec.rb +60 -58
- data/spec/punchblock/component/record_spec.rb +36 -34
- data/spec/punchblock/connection/asterisk_spec.rb +9 -4
- data/spec/punchblock/connection/xmpp_spec.rb +40 -39
- data/spec/punchblock/event/answered_spec.rb +4 -2
- data/spec/punchblock/event/asterisk/ami/event_spec.rb +9 -7
- data/spec/punchblock/event/complete_spec.rb +12 -10
- data/spec/punchblock/event/dtmf_spec.rb +6 -4
- data/spec/punchblock/event/end_spec.rb +6 -4
- data/spec/punchblock/event/joined_spec.rb +8 -6
- data/spec/punchblock/event/offer_spec.rb +7 -5
- data/spec/punchblock/event/ringing_spec.rb +4 -2
- data/spec/punchblock/event/unjoined_spec.rb +8 -6
- data/spec/punchblock/header_spec.rb +13 -11
- data/spec/punchblock/protocol_error_spec.rb +8 -6
- data/spec/punchblock/ref_spec.rb +5 -3
- data/spec/punchblock/translator/asterisk/call_spec.rb +261 -14
- data/spec/punchblock/translator/asterisk/component/asterisk/agi_command_spec.rb +13 -11
- data/spec/punchblock/translator/asterisk/component/asterisk/ami_action_spec.rb +4 -2
- data/spec/punchblock/translator/asterisk/component/input_spec.rb +10 -8
- data/spec/punchblock/translator/asterisk/component/output_spec.rb +111 -20
- data/spec/punchblock/translator/asterisk/component_spec.rb +3 -1
- data/spec/punchblock/translator/asterisk_spec.rb +107 -10
- data/spec/spec_helper.rb +23 -17
- data/spec/support/mock_connection_with_event_handler.rb +2 -0
- metadata +43 -41
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
@@ -5,7 +7,7 @@ module Punchblock
|
|
|
5
7
|
describe Dial do
|
|
6
8
|
|
|
7
9
|
it 'registers itself' do
|
|
8
|
-
RayoNode.class_from_registration(:dial, 'urn:xmpp:rayo:1').should == Dial
|
|
10
|
+
RayoNode.class_from_registration(:dial, 'urn:xmpp:rayo:1').should be == Dial
|
|
9
11
|
end
|
|
10
12
|
|
|
11
13
|
let(:join_params) { {:other_call_id => 'abc123'} }
|
|
@@ -15,10 +17,10 @@ module Punchblock
|
|
|
15
17
|
|
|
16
18
|
it_should_behave_like 'command_headers'
|
|
17
19
|
|
|
18
|
-
its(:to) { should == 'tel:+14155551212' }
|
|
19
|
-
its(:from) { should == 'tel:+13035551212' }
|
|
20
|
-
its(:timeout) { should == 30000 }
|
|
21
|
-
its(:join) { should == Join.new(join_params) }
|
|
20
|
+
its(:to) { should be == 'tel:+14155551212' }
|
|
21
|
+
its(:from) { should be == 'tel:+13035551212' }
|
|
22
|
+
its(:timeout) { should be == 30000 }
|
|
23
|
+
its(:join) { should be == Join.new(join_params) }
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
describe "from a stanza" do
|
|
@@ -36,10 +38,10 @@ module Punchblock
|
|
|
36
38
|
|
|
37
39
|
it { should be_instance_of Dial }
|
|
38
40
|
|
|
39
|
-
its(:to) { should == 'tel:+14155551212' }
|
|
40
|
-
its(:from) { should == 'tel:+13035551212' }
|
|
41
|
-
its(:timeout) { should == 30000 }
|
|
42
|
-
its(:join) { should == Join.new(join_params) }
|
|
41
|
+
its(:to) { should be == 'tel:+14155551212' }
|
|
42
|
+
its(:from) { should be == 'tel:+13035551212' }
|
|
43
|
+
its(:timeout) { should be == 30000 }
|
|
44
|
+
its(:join) { should be == Join.new(join_params) }
|
|
43
45
|
end
|
|
44
46
|
|
|
45
47
|
describe "#response=" do
|
|
@@ -55,7 +57,7 @@ module Punchblock
|
|
|
55
57
|
|
|
56
58
|
it "should set the call ID from the ref" do
|
|
57
59
|
subject.response = ref
|
|
58
|
-
subject.call_id.should == call_id
|
|
60
|
+
subject.call_id.should be == call_id
|
|
59
61
|
end
|
|
60
62
|
end
|
|
61
63
|
end
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
4
6
|
module Command
|
|
5
7
|
describe Hangup do
|
|
6
8
|
it 'registers itself' do
|
|
7
|
-
RayoNode.class_from_registration(:hangup, 'urn:xmpp:rayo:1').should == Hangup
|
|
9
|
+
RayoNode.class_from_registration(:hangup, 'urn:xmpp:rayo:1').should be == Hangup
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
it_should_behave_like 'command_headers'
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
@@ -5,16 +7,16 @@ module Punchblock
|
|
|
5
7
|
describe Join do
|
|
6
8
|
|
|
7
9
|
it 'registers itself' do
|
|
8
|
-
RayoNode.class_from_registration(:join, 'urn:xmpp:rayo:1').should == Join
|
|
10
|
+
RayoNode.class_from_registration(:join, 'urn:xmpp:rayo:1').should be == Join
|
|
9
11
|
end
|
|
10
12
|
|
|
11
13
|
describe "when setting options in initializer" do
|
|
12
14
|
subject { Join.new :other_call_id => 'abc123', :mixer_name => 'blah', :direction => :duplex, :media => :bridge }
|
|
13
15
|
|
|
14
|
-
its(:other_call_id) { should == 'abc123' }
|
|
15
|
-
its(:mixer_name) { should == 'blah' }
|
|
16
|
-
its(:direction) { should == :duplex }
|
|
17
|
-
its(:media) { should == :bridge }
|
|
16
|
+
its(:other_call_id) { should be == 'abc123' }
|
|
17
|
+
its(:mixer_name) { should be == 'blah' }
|
|
18
|
+
its(:direction) { should be == :duplex }
|
|
19
|
+
its(:media) { should be == :bridge }
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
describe "from a stanza" do
|
|
@@ -32,10 +34,10 @@ module Punchblock
|
|
|
32
34
|
|
|
33
35
|
it { should be_instance_of Join }
|
|
34
36
|
|
|
35
|
-
its(:other_call_id) { should == 'abc123' }
|
|
36
|
-
its(:mixer_name) { should == 'blah' }
|
|
37
|
-
its(:direction) { should == :duplex }
|
|
38
|
-
its(:media) { should == :bridge }
|
|
37
|
+
its(:other_call_id) { should be == 'abc123' }
|
|
38
|
+
its(:mixer_name) { should be == 'blah' }
|
|
39
|
+
its(:direction) { should be == :duplex }
|
|
40
|
+
its(:media) { should be == :bridge }
|
|
39
41
|
end
|
|
40
42
|
end
|
|
41
43
|
end
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
4
6
|
module Command
|
|
5
7
|
describe Mute do
|
|
6
8
|
it 'registers itself' do
|
|
7
|
-
RayoNode.class_from_registration(:mute, 'urn:xmpp:rayo:1').should == Mute
|
|
9
|
+
RayoNode.class_from_registration(:mute, 'urn:xmpp:rayo:1').should be == Mute
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
describe "from a stanza" do
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
4
6
|
module Command
|
|
5
7
|
describe Redirect do
|
|
6
8
|
it 'registers itself' do
|
|
7
|
-
RayoNode.class_from_registration(:redirect, 'urn:xmpp:rayo:1').should == Redirect
|
|
9
|
+
RayoNode.class_from_registration(:redirect, 'urn:xmpp:rayo:1').should be == Redirect
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
describe "when setting options in initializer" do
|
|
@@ -12,7 +14,7 @@ module Punchblock
|
|
|
12
14
|
|
|
13
15
|
it_should_behave_like 'command_headers'
|
|
14
16
|
|
|
15
|
-
its(:to) { should == 'tel:+14045551234' }
|
|
17
|
+
its(:to) { should be == 'tel:+14045551234' }
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
describe "from a stanza" do
|
|
@@ -33,7 +35,7 @@ module Punchblock
|
|
|
33
35
|
|
|
34
36
|
it_should_behave_like 'command_headers'
|
|
35
37
|
|
|
36
|
-
its(:to) { should == 'tel:+14045551234' }
|
|
38
|
+
its(:to) { should be == 'tel:+14045551234' }
|
|
37
39
|
end
|
|
38
40
|
end # Redirect
|
|
39
41
|
end # Command
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
4
6
|
module Command
|
|
5
7
|
describe Reject do
|
|
6
8
|
it 'registers itself' do
|
|
7
|
-
RayoNode.class_from_registration(:reject, 'urn:xmpp:rayo:1').should == Reject
|
|
9
|
+
RayoNode.class_from_registration(:reject, 'urn:xmpp:rayo:1').should be == Reject
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
describe "when setting options in initializer" do
|
|
@@ -12,7 +14,7 @@ module Punchblock
|
|
|
12
14
|
|
|
13
15
|
it_should_behave_like 'command_headers'
|
|
14
16
|
|
|
15
|
-
its(:reason) { should == :busy }
|
|
17
|
+
its(:reason) { should be == :busy }
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
describe "from a stanza" do
|
|
@@ -30,8 +32,8 @@ module Punchblock
|
|
|
30
32
|
|
|
31
33
|
it { should be_instance_of Reject }
|
|
32
34
|
|
|
33
|
-
its(:reason) { should == :busy }
|
|
34
|
-
its(:headers_hash) { should == { :x_reason_internal => 'bad-skill' } }
|
|
35
|
+
its(:reason) { should be == :busy }
|
|
36
|
+
its(:headers_hash) { should be == { :x_reason_internal => 'bad-skill' } }
|
|
35
37
|
end
|
|
36
38
|
|
|
37
39
|
describe "with the reason" do
|
|
@@ -39,7 +41,7 @@ module Punchblock
|
|
|
39
41
|
describe reason do
|
|
40
42
|
subject { Reject.new :reason => reason }
|
|
41
43
|
|
|
42
|
-
its(:reason) { should == reason }
|
|
44
|
+
its(:reason) { should be == reason }
|
|
43
45
|
end
|
|
44
46
|
end
|
|
45
47
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
@@ -5,14 +7,14 @@ module Punchblock
|
|
|
5
7
|
describe Unjoin do
|
|
6
8
|
|
|
7
9
|
it 'registers itself' do
|
|
8
|
-
RayoNode.class_from_registration(:unjoin, 'urn:xmpp:rayo:1').should == Unjoin
|
|
10
|
+
RayoNode.class_from_registration(:unjoin, 'urn:xmpp:rayo:1').should be == Unjoin
|
|
9
11
|
end
|
|
10
12
|
|
|
11
13
|
describe "when setting options in initializer" do
|
|
12
14
|
subject { Unjoin.new :other_call_id => 'abc123', :mixer_name => 'blah' }
|
|
13
15
|
|
|
14
|
-
its(:other_call_id) { should == 'abc123' }
|
|
15
|
-
its(:mixer_name) { should == 'blah' }
|
|
16
|
+
its(:other_call_id) { should be == 'abc123' }
|
|
17
|
+
its(:mixer_name) { should be == 'blah' }
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
describe "from a stanza" do
|
|
@@ -28,8 +30,8 @@ module Punchblock
|
|
|
28
30
|
|
|
29
31
|
it { should be_instance_of Unjoin }
|
|
30
32
|
|
|
31
|
-
its(:other_call_id) { should == 'abc123' }
|
|
32
|
-
its(:mixer_name) { should == 'blah' }
|
|
33
|
+
its(:other_call_id) { should be == 'abc123' }
|
|
34
|
+
its(:mixer_name) { should be == 'blah' }
|
|
33
35
|
end
|
|
34
36
|
end
|
|
35
37
|
end
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
4
6
|
module Command
|
|
5
7
|
describe Unmute do
|
|
6
8
|
it 'registers itself' do
|
|
7
|
-
RayoNode.class_from_registration(:unmute, 'urn:xmpp:rayo:1').should == Unmute
|
|
9
|
+
RayoNode.class_from_registration(:unmute, 'urn:xmpp:rayo:1').should be == Unmute
|
|
8
10
|
end
|
|
9
11
|
|
|
10
12
|
describe "from a stanza" do
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
4
6
|
module Command
|
|
5
7
|
describe CommandNode do
|
|
6
|
-
its(:state_name) { should == :new }
|
|
8
|
+
its(:state_name) { should be == :new }
|
|
7
9
|
|
|
8
10
|
describe "#new" do
|
|
9
11
|
describe "with a call/component ID" do
|
|
@@ -11,17 +13,17 @@ module Punchblock
|
|
|
11
13
|
let(:component_id) { 'abc123' }
|
|
12
14
|
let(:args) { [{:call_id => call_id, :component_id => component_id}] }
|
|
13
15
|
|
|
14
|
-
subject { CommandNode.new
|
|
16
|
+
subject { CommandNode.new(*args) }
|
|
15
17
|
|
|
16
|
-
its(:call_id) { should == call_id }
|
|
17
|
-
its(:component_id) { should == component_id }
|
|
18
|
+
its(:call_id) { should be == call_id }
|
|
19
|
+
its(:component_id) { should be == component_id }
|
|
18
20
|
end
|
|
19
21
|
end
|
|
20
22
|
|
|
21
23
|
describe "#request!" do
|
|
22
24
|
before { subject.request! }
|
|
23
25
|
|
|
24
|
-
its(:state_name) { should == :requested }
|
|
26
|
+
its(:state_name) { should be == :requested }
|
|
25
27
|
|
|
26
28
|
it "should raise a StateMachine::InvalidTransition when received a second time" do
|
|
27
29
|
lambda { subject.request! }.should raise_error(StateMachine::InvalidTransition)
|
|
@@ -45,7 +47,7 @@ module Punchblock
|
|
|
45
47
|
subject.execute!
|
|
46
48
|
end
|
|
47
49
|
|
|
48
|
-
its(:state_name) { should == :executing }
|
|
50
|
+
its(:state_name) { should be == :executing }
|
|
49
51
|
end
|
|
50
52
|
end
|
|
51
53
|
|
|
@@ -56,7 +58,7 @@ module Punchblock
|
|
|
56
58
|
subject.complete!
|
|
57
59
|
end
|
|
58
60
|
|
|
59
|
-
its(:state_name) { should == :complete }
|
|
61
|
+
its(:state_name) { should be == :complete }
|
|
60
62
|
|
|
61
63
|
it "should raise a StateMachine::InvalidTransition when received a second time" do
|
|
62
64
|
lambda { subject.complete! }.should raise_error(StateMachine::InvalidTransition)
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
@@ -6,7 +8,7 @@ module Punchblock
|
|
|
6
8
|
module AGI
|
|
7
9
|
describe Command do
|
|
8
10
|
it 'registers itself' do
|
|
9
|
-
RayoNode.class_from_registration(:command, 'urn:xmpp:rayo:asterisk:agi:1').should == Command
|
|
11
|
+
RayoNode.class_from_registration(:command, 'urn:xmpp:rayo:asterisk:agi:1').should be == Command
|
|
10
12
|
end
|
|
11
13
|
|
|
12
14
|
describe "from a stanza" do
|
|
@@ -24,9 +26,9 @@ module Punchblock
|
|
|
24
26
|
|
|
25
27
|
it_should_behave_like 'event'
|
|
26
28
|
|
|
27
|
-
its(:name) { should == 'GET VARIABLE' }
|
|
28
|
-
its(:params) { should == [Command::Param.new('UNIQUEID')] }
|
|
29
|
-
its(:params_array) { should == ['UNIQUEID'] }
|
|
29
|
+
its(:name) { should be == 'GET VARIABLE' }
|
|
30
|
+
its(:params) { should be == [Command::Param.new('UNIQUEID')] }
|
|
31
|
+
its(:params_array) { should be == ['UNIQUEID'] }
|
|
30
32
|
end
|
|
31
33
|
|
|
32
34
|
describe "when setting options in initializer" do
|
|
@@ -35,9 +37,9 @@ module Punchblock
|
|
|
35
37
|
:params => ['UNIQUEID']
|
|
36
38
|
end
|
|
37
39
|
|
|
38
|
-
its(:name) { should == 'GET VARIABLE' }
|
|
39
|
-
its(:params) { should == [Command::Param.new('UNIQUEID')] }
|
|
40
|
-
its(:params_array) { should == ['UNIQUEID'] }
|
|
40
|
+
its(:name) { should be == 'GET VARIABLE' }
|
|
41
|
+
its(:params) { should be == [Command::Param.new('UNIQUEID')] }
|
|
42
|
+
its(:params_array) { should be == ['UNIQUEID'] }
|
|
41
43
|
end
|
|
42
44
|
|
|
43
45
|
class Command
|
|
@@ -45,20 +47,20 @@ module Punchblock
|
|
|
45
47
|
it 'will auto-inherit nodes' do
|
|
46
48
|
n = parse_stanza "<param value='bah' />"
|
|
47
49
|
h = Param.new n.root
|
|
48
|
-
h.value.should == 'bah'
|
|
50
|
+
h.value.should be == 'bah'
|
|
49
51
|
end
|
|
50
52
|
|
|
51
53
|
it 'has a value attribute' do
|
|
52
54
|
n = Param.new 'en'
|
|
53
|
-
n.value.should == 'en'
|
|
55
|
+
n.value.should be == 'en'
|
|
54
56
|
n.value = 'de'
|
|
55
|
-
n.value.should == 'de'
|
|
57
|
+
n.value.should be == 'de'
|
|
56
58
|
end
|
|
57
59
|
|
|
58
60
|
it 'can determine equality' do
|
|
59
61
|
a = Param.new 'bah'
|
|
60
|
-
a.should == Param.new('bah')
|
|
61
|
-
a.should_not == Param.new('boo')
|
|
62
|
+
a.should be == Param.new('bah')
|
|
63
|
+
a.should_not be == Param.new('boo')
|
|
62
64
|
end
|
|
63
65
|
end
|
|
64
66
|
|
|
@@ -79,19 +81,19 @@ module Punchblock
|
|
|
79
81
|
|
|
80
82
|
it { should be_instance_of Complete::Success }
|
|
81
83
|
|
|
82
|
-
its(:name) { should == :success }
|
|
83
|
-
its(:code) { should == 200 }
|
|
84
|
-
its(:result) { should == 0 }
|
|
85
|
-
its(:data) { should == '1187188485.0' }
|
|
84
|
+
its(:name) { should be == :success }
|
|
85
|
+
its(:code) { should be == 200 }
|
|
86
|
+
its(:result) { should be == 0 }
|
|
87
|
+
its(:data) { should be == '1187188485.0' }
|
|
86
88
|
|
|
87
89
|
describe "when setting options in initializer" do
|
|
88
90
|
subject do
|
|
89
91
|
Complete::Success.new :code => 200, :result => 0, :data => '1187188485.0'
|
|
90
92
|
end
|
|
91
93
|
|
|
92
|
-
its(:code) { should == 200 }
|
|
93
|
-
its(:result) { should == 0 }
|
|
94
|
-
its(:data) { should == '1187188485.0' }
|
|
94
|
+
its(:code) { should be == 200 }
|
|
95
|
+
its(:result) { should be == 0 }
|
|
96
|
+
its(:data) { should be == '1187188485.0' }
|
|
95
97
|
end
|
|
96
98
|
end
|
|
97
99
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
@@ -6,7 +8,7 @@ module Punchblock
|
|
|
6
8
|
module AMI
|
|
7
9
|
describe Action do
|
|
8
10
|
it 'registers itself' do
|
|
9
|
-
RayoNode.class_from_registration(:action, 'urn:xmpp:rayo:asterisk:ami:1').should == Action
|
|
11
|
+
RayoNode.class_from_registration(:action, 'urn:xmpp:rayo:asterisk:ami:1').should be == Action
|
|
10
12
|
end
|
|
11
13
|
|
|
12
14
|
describe "from a stanza" do
|
|
@@ -31,8 +33,8 @@ module Punchblock
|
|
|
31
33
|
|
|
32
34
|
it_should_behave_like 'event'
|
|
33
35
|
|
|
34
|
-
its(:name) { should == 'Originate' }
|
|
35
|
-
its(:params) { should == [Action::Param.new(:channel, 'SIP/101test'),
|
|
36
|
+
its(:name) { should be == 'Originate' }
|
|
37
|
+
its(:params) { should be == [Action::Param.new(:channel, 'SIP/101test'),
|
|
36
38
|
Action::Param.new(:context, 'default'),
|
|
37
39
|
Action::Param.new(:exten, '8135551212'),
|
|
38
40
|
Action::Param.new(:priority, '1'),
|
|
@@ -42,7 +44,7 @@ module Punchblock
|
|
|
42
44
|
Action::Param.new(:async, '1')
|
|
43
45
|
]}
|
|
44
46
|
|
|
45
|
-
its(:params_hash) { should == {:channel => 'SIP/101test',
|
|
47
|
+
its(:params_hash) { should be == {:channel => 'SIP/101test',
|
|
46
48
|
:context => 'default',
|
|
47
49
|
:exten => '8135551212',
|
|
48
50
|
:priority => '1',
|
|
@@ -55,19 +57,19 @@ module Punchblock
|
|
|
55
57
|
describe "testing equality" do
|
|
56
58
|
context "with the same name and params" do
|
|
57
59
|
it "should be equal" do
|
|
58
|
-
Action.new(:name => 'Originate', :params => { :channel => 'SIP/101test' }).should == Action.new(:name => 'Originate', :params => { :channel => 'SIP/101test' })
|
|
60
|
+
Action.new(:name => 'Originate', :params => { :channel => 'SIP/101test' }).should be == Action.new(:name => 'Originate', :params => { :channel => 'SIP/101test' })
|
|
59
61
|
end
|
|
60
62
|
end
|
|
61
63
|
|
|
62
64
|
context "with the same name and different params" do
|
|
63
65
|
it "should be equal" do
|
|
64
|
-
Action.new(:name => 'Originate', :params => { :channel => 'SIP/101' }).should_not == Action.new(:name => 'Originate', :params => { :channel => 'SIP/101test' })
|
|
66
|
+
Action.new(:name => 'Originate', :params => { :channel => 'SIP/101' }).should_not be == Action.new(:name => 'Originate', :params => { :channel => 'SIP/101test' })
|
|
65
67
|
end
|
|
66
68
|
end
|
|
67
69
|
|
|
68
70
|
context "with a different name and the same params" do
|
|
69
71
|
it "should be equal" do
|
|
70
|
-
Action.new(:name => 'Hangup', :params => { :channel => 'SIP/101test' }).should_not == Action.new(:name => 'Originate', :params => { :channel => 'SIP/101test' })
|
|
72
|
+
Action.new(:name => 'Hangup', :params => { :channel => 'SIP/101test' }).should_not be == Action.new(:name => 'Originate', :params => { :channel => 'SIP/101test' })
|
|
71
73
|
end
|
|
72
74
|
end
|
|
73
75
|
end
|
|
@@ -78,9 +80,9 @@ module Punchblock
|
|
|
78
80
|
:params => { :channel => 'SIP/101test' }
|
|
79
81
|
end
|
|
80
82
|
|
|
81
|
-
its(:name) { should == 'Originate' }
|
|
82
|
-
its(:params) { should == [Action::Param.new(:channel, 'SIP/101test')]}
|
|
83
|
-
its(:params_hash) { should == { :channel => 'SIP/101test' } }
|
|
83
|
+
its(:name) { should be == 'Originate' }
|
|
84
|
+
its(:params) { should be == [Action::Param.new(:channel, 'SIP/101test')]}
|
|
85
|
+
its(:params_hash) { should be == { :channel => 'SIP/101test' } }
|
|
84
86
|
end
|
|
85
87
|
|
|
86
88
|
class Action
|
|
@@ -108,19 +110,19 @@ module Punchblock
|
|
|
108
110
|
|
|
109
111
|
it { should be_instance_of Success }
|
|
110
112
|
|
|
111
|
-
its(:name) { should == :success }
|
|
112
|
-
its(:message) { should == "Originate successfully queued" }
|
|
113
|
-
its(:attributes) { should == [Attribute.new(:channel, 'SIP/101-3f3f'), Attribute.new(:state, 'Ring')]}
|
|
114
|
-
its(:attributes_hash) { should == {:channel => 'SIP/101-3f3f', :state => 'Ring'} }
|
|
113
|
+
its(:name) { should be == :success }
|
|
114
|
+
its(:message) { should be == "Originate successfully queued" }
|
|
115
|
+
its(:attributes) { should be == [Attribute.new(:channel, 'SIP/101-3f3f'), Attribute.new(:state, 'Ring')]}
|
|
116
|
+
its(:attributes_hash) { should be == {:channel => 'SIP/101-3f3f', :state => 'Ring'} }
|
|
115
117
|
|
|
116
118
|
describe "when setting options in initializer" do
|
|
117
119
|
subject do
|
|
118
120
|
Success.new :message => 'Originate successfully queued', :attributes => {:channel => 'SIP/101-3f3f', :state => 'Ring'}
|
|
119
121
|
end
|
|
120
122
|
|
|
121
|
-
its(:message) { should == 'Originate successfully queued' }
|
|
122
|
-
its(:attributes) { should == [Attribute.new(:channel, 'SIP/101-3f3f'), Attribute.new(:state, 'Ring')]}
|
|
123
|
-
its(:attributes_hash) { should == {:channel => 'SIP/101-3f3f', :state => 'Ring'} }
|
|
123
|
+
its(:message) { should be == 'Originate successfully queued' }
|
|
124
|
+
its(:attributes) { should be == [Attribute.new(:channel, 'SIP/101-3f3f'), Attribute.new(:state, 'Ring')]}
|
|
125
|
+
its(:attributes_hash) { should be == {:channel => 'SIP/101-3f3f', :state => 'Ring'} }
|
|
124
126
|
end
|
|
125
127
|
end
|
|
126
128
|
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
module Punchblock
|
|
@@ -18,7 +20,7 @@ module Punchblock
|
|
|
18
20
|
describe "with a complete event" do
|
|
19
21
|
it "should set the complete event resource" do
|
|
20
22
|
add_event
|
|
21
|
-
subject.complete_event(0.5).should == event
|
|
23
|
+
subject.complete_event(0.5).should be == event
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
it "should call #complete!" do
|
|
@@ -75,7 +77,7 @@ module Punchblock
|
|
|
75
77
|
|
|
76
78
|
it "should set the component ID from the ref" do
|
|
77
79
|
subject.response = ref
|
|
78
|
-
subject.component_id.should == component_id
|
|
80
|
+
subject.component_id.should be == component_id
|
|
79
81
|
subject.client.find_component_by_id(component_id).should be subject
|
|
80
82
|
end
|
|
81
83
|
end
|
|
@@ -94,7 +96,7 @@ module Punchblock
|
|
|
94
96
|
it "should be a no-op if the response has already been set" do
|
|
95
97
|
subject.complete_event = :foo
|
|
96
98
|
lambda { subject.complete_event = :bar }.should_not raise_error
|
|
97
|
-
subject.complete_event(0.5).should == :foo
|
|
99
|
+
subject.complete_event(0.5).should be == :foo
|
|
98
100
|
end
|
|
99
101
|
end
|
|
100
102
|
end # ComponentNode
|