electric_slide 0.2.0 → 0.3.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.
@@ -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