dat-worker-pool 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.
@@ -0,0 +1,33 @@
|
|
1
|
+
class DatWorkerPool
|
2
|
+
|
3
|
+
class WorkerPoolSpy
|
4
|
+
attr_reader :work_items
|
5
|
+
attr_reader :shutdown_called, :shutdown_timeout
|
6
|
+
attr_accessor :worker_available
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@worker_available = false
|
10
|
+
@work_items = []
|
11
|
+
@shutdown_called = false
|
12
|
+
@shutdown_timeout = nil
|
13
|
+
end
|
14
|
+
|
15
|
+
def worker_available?
|
16
|
+
@worker_available
|
17
|
+
end
|
18
|
+
|
19
|
+
def queue_empty?
|
20
|
+
@work_items.empty?
|
21
|
+
end
|
22
|
+
|
23
|
+
def add_work(work)
|
24
|
+
@work_items << work if work
|
25
|
+
end
|
26
|
+
|
27
|
+
def shutdown(timeout)
|
28
|
+
@shutdown_called = true
|
29
|
+
@shutdown_timeout = timeout
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'assert'
|
2
|
+
require 'dat-worker-pool/worker_pool_spy'
|
3
|
+
|
4
|
+
class DatWorkerPool::WorkerPoolSpy
|
5
|
+
|
6
|
+
class UnitTests < Assert::Context
|
7
|
+
desc "DatWorkerPool::WorkerPoolSpy"
|
8
|
+
setup do
|
9
|
+
@worker_pool_spy = DatWorkerPool::WorkerPoolSpy.new
|
10
|
+
end
|
11
|
+
subject{ @worker_pool_spy }
|
12
|
+
|
13
|
+
should have_readers :work_items
|
14
|
+
should have_readers :shutdown_called, :shutdown_timeout
|
15
|
+
should have_accessors :worker_available
|
16
|
+
should have_imeths :worker_available?, :queue_empty?
|
17
|
+
should have_imeths :add_work, :shutdown
|
18
|
+
|
19
|
+
should "have nothing in it's work items by default" do
|
20
|
+
assert subject.work_items.empty?
|
21
|
+
end
|
22
|
+
|
23
|
+
should "not have a worker available by default" do
|
24
|
+
assert_equal false, subject.worker_available
|
25
|
+
assert_not subject.worker_available?
|
26
|
+
end
|
27
|
+
|
28
|
+
should "return false for shutdown called by default" do
|
29
|
+
assert_equal false, subject.shutdown_called
|
30
|
+
end
|
31
|
+
|
32
|
+
should "return `nil` for shutdown timeout by default" do
|
33
|
+
assert_nil subject.shutdown_timeout
|
34
|
+
end
|
35
|
+
|
36
|
+
should "allow setting whether a worker is available" do
|
37
|
+
subject.worker_available = true
|
38
|
+
assert_equal true, subject.worker_available
|
39
|
+
assert subject.worker_available?
|
40
|
+
end
|
41
|
+
|
42
|
+
should "allow adding work to the work items with #add_work" do
|
43
|
+
subject.add_work 'work'
|
44
|
+
assert_equal 1, subject.work_items.size
|
45
|
+
assert_includes 'work', subject.work_items
|
46
|
+
end
|
47
|
+
|
48
|
+
should "not add `nil` work to the work items with #add_work" do
|
49
|
+
subject.add_work nil
|
50
|
+
assert_equal 0, subject.work_items.size
|
51
|
+
end
|
52
|
+
|
53
|
+
should "return whether the work items is empty with #queue_empty?" do
|
54
|
+
assert_equal true, subject.queue_empty?
|
55
|
+
subject.add_work 'work'
|
56
|
+
assert_equal false, subject.queue_empty?
|
57
|
+
end
|
58
|
+
|
59
|
+
should "know when it's been shutdown and with what timeout" do
|
60
|
+
subject.shutdown(10)
|
61
|
+
assert subject.shutdown_called
|
62
|
+
assert_equal 10, subject.shutdown_timeout
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dat-worker-pool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 3
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Collin Redding
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2013-10-
|
19
|
+
date: 2013-10-10 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
@@ -68,11 +68,13 @@ files:
|
|
68
68
|
- lib/dat-worker-pool/queue.rb
|
69
69
|
- lib/dat-worker-pool/version.rb
|
70
70
|
- lib/dat-worker-pool/worker.rb
|
71
|
+
- lib/dat-worker-pool/worker_pool_spy.rb
|
71
72
|
- log/.gitkeep
|
72
73
|
- test/helper.rb
|
73
74
|
- test/system/use_worker_pool_tests.rb
|
74
75
|
- test/unit/dat-worker-pool_tests.rb
|
75
76
|
- test/unit/queue_tests.rb
|
77
|
+
- test/unit/worker_pool_spy_tests.rb
|
76
78
|
- test/unit/worker_tests.rb
|
77
79
|
- tmp/.gitkeep
|
78
80
|
homepage: http://github.com/redding/dat-worker-pool
|
@@ -113,4 +115,5 @@ test_files:
|
|
113
115
|
- test/system/use_worker_pool_tests.rb
|
114
116
|
- test/unit/dat-worker-pool_tests.rb
|
115
117
|
- test/unit/queue_tests.rb
|
118
|
+
- test/unit/worker_pool_spy_tests.rb
|
116
119
|
- test/unit/worker_tests.rb
|