electric_slide 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,36 +6,80 @@ describe ElectricSlide do
6
6
  ElectricSlide.shutdown_queue :fake
7
7
  end
8
8
 
9
- let(:queue_class) { double :fake_queue_class }
10
- let(:queue_inst) { double :fake_queue_instance }
11
-
12
9
  it "should default to an ElectricSlide::CallQueue if one is not specified" do
13
10
  ElectricSlide.create :fake
14
- expect { ElectricSlide.get_queue :fake }.to_not raise_error
11
+ expect(ElectricSlide.get_queue :fake).to be_a(ElectricSlide::CallQueue)
15
12
  end
16
13
 
17
14
  it "should start the queue upon registration" do
18
- expect(queue_class).to receive(:work).once.and_return queue_inst
19
- expect(queue_inst).to receive(:terminate).once
15
+ ElectricSlide.create :fake
16
+ expect(ElectricSlide.get_queue(:fake).alive?).to be true
17
+ end
18
+
19
+ it "should start a custom queue type" do
20
+ queue_class = Class.new(ElectricSlide::CallQueue)
20
21
  ElectricSlide.create :fake, queue_class
22
+ expect(ElectricSlide.get_queue(:fake).alive?).to be true
21
23
  end
22
24
 
23
25
  it "should preserve additional queue arguments" do
24
- queue = double(:fake_queue)
25
- expect(queue_class).to receive(:work).with(:foo, :bar, :baz).once.and_return queue_inst
26
- expect(queue_inst).to receive(:terminate).once
27
- ElectricSlide.create :fake, queue_class, :foo, :bar, :baz
26
+ ElectricSlide.create :fake, nil, agent_return_method: :manual
27
+ expect(ElectricSlide.get_queue(:fake).agent_return_method).to be(:manual)
28
28
  end
29
29
 
30
30
  it "should not allow a second queue to be created with the same name" do
31
31
  ElectricSlide.create :fake
32
- expect { ElectricSlide.create :fake }.to raise_error
32
+ expect { ElectricSlide.create :fake }.to raise_error(StandardError)
33
33
  end
34
34
  end
35
35
 
36
- it "should raise if attempting to work with a queue that doesn't exist" do
37
- expect { ElectricSlide.get_queue!("does not exist!") }.to raise_error
38
- expect { ElectricSlide.shutdown_queue("does not exist!") }.to raise_error
36
+ describe "shutting down a queue" do
37
+ before do
38
+ ElectricSlide.create :fooqueue
39
+ ElectricSlide.shutdown_queue :fooqueue
40
+ end
41
+
42
+ it "should make the queue inaccessible" do
43
+ expect(ElectricSlide.get_queue(:fooqueue)).to be_nil
44
+ end
45
+
46
+ context "more than once" do
47
+ it "should remain silent" do
48
+ expect {
49
+ ElectricSlide.shutdown_queue :fooqueue
50
+ ElectricSlide.shutdown_queue :fooqueue
51
+ }.not_to raise_error
52
+ end
53
+ end
39
54
  end
40
55
 
56
+ describe '::queues_by_name' do
57
+ before do
58
+ ElectricSlide.create :barbe
59
+ ElectricSlide.create :banana
60
+ end
61
+
62
+ after do
63
+ ElectricSlide.shutdown_queue :barbe
64
+ ElectricSlide.shutdown_queue :banana
65
+ end
66
+
67
+ it 'returns a hash of queues, with their names as keys' do
68
+ expect(ElectricSlide.queues_by_name).to eq({
69
+ barbe: ElectricSlide.get_queue(:barbe),
70
+ banana: ElectricSlide.get_queue(:banana)
71
+ })
72
+ end
73
+
74
+ context 'when there are no queues' do
75
+ before do
76
+ ElectricSlide.shutdown_queue :barbe
77
+ ElectricSlide.shutdown_queue :banana
78
+ end
79
+
80
+ it 'returns an empty hash' do
81
+ expect(ElectricSlide.queues_by_name).to eq({})
82
+ end
83
+ end
84
+ end
41
85
  end
@@ -5,11 +5,17 @@ Thread.abort_on_exception = true
5
5
  adhearsion
6
6
  electric_slide
7
7
  rspec/core
8
+ timecop
8
9
  ).each { |r| require r }
9
10
 
10
11
  RSpec.configure do |config|
11
12
  config.filter_run focus: true
12
13
  config.run_all_when_everything_filtered = true
14
+ config.raise_errors_for_deprecations!
15
+
16
+ config.after :each do
17
+ Timecop.return
18
+ end
13
19
  end
14
20
 
15
21
  def dummy_call
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: electric_slide
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Klang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-23 00:00:00.000000000 Z
11
+ date: 2015-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: adhearsion
@@ -54,18 +54,32 @@ dependencies:
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: timecop
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
60
74
  - !ruby/object:Gem::Version
61
- version: 2.5.0
75
+ version: '0'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - ">="
67
81
  - !ruby/object:Gem::Version
68
- version: 2.5.0
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: ci_reporter
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -145,6 +159,8 @@ extra_rdoc_files: []
145
159
  files:
146
160
  - ".gitignore"
147
161
  - ".rspec"
162
+ - ".travis.yml"
163
+ - CHANGELOG.md
148
164
  - Gemfile
149
165
  - Guardfile
150
166
  - LICENSE
@@ -165,7 +181,8 @@ files:
165
181
  - spec/electric_slide_spec.rb
166
182
  - spec/spec_helper.rb
167
183
  homepage: http://github.com/adhearsion/electric_slide
168
- licenses: []
184
+ licenses:
185
+ - MIT
169
186
  metadata: {}
170
187
  post_install_message:
171
188
  rdoc_options: []
@@ -183,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
200
  version: '0'
184
201
  requirements: []
185
202
  rubyforge_project:
186
- rubygems_version: 2.4.5
203
+ rubygems_version: 2.2.2
187
204
  signing_key:
188
205
  specification_version: 2
189
206
  summary: Automatic Call Distributor for Adhearsion