hopper 0.0.1.pre.alpha.1

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,22 @@
1
+ require File.expand_path('../../../../test_helper', __FILE__)
2
+
3
+ require 'hopper/channel/queue/publisher'
4
+
5
+ class Hopper::Channel::Queue::PublisherTest < Test::Unit::TestCase
6
+ setup do
7
+ @mock_queue_proxy = mock
8
+
9
+ @publisher = Hopper::Channel::Queue::Publisher.new(@mock_queue_proxy, {:encoder => @mock_encoder})
10
+ end
11
+
12
+ test "#publish" do
13
+ mock_message = mock
14
+
15
+ mock_payload = mock
16
+ mock_message.expects(:payload).returns(mock_payload)
17
+
18
+ @mock_queue_proxy.expects(:publish).with(mock_payload, {})
19
+
20
+ @publisher.publish(mock_message)
21
+ end
22
+ end
@@ -0,0 +1,77 @@
1
+ require File.expand_path('../../../test_helper', __FILE__)
2
+
3
+ require 'hopper/channel/queue'
4
+
5
+ class Hopper::Channel::QueueTest < Test::Unit::TestCase
6
+ setup do
7
+ @mock_channel = mock
8
+ @mock_queue = mock
9
+
10
+ @channel_queue = Hopper::Channel::Queue.new(@mock_channel, @mock_queue)
11
+ end
12
+
13
+ test "#listener" do
14
+ mock_bunny_queue = mock
15
+
16
+ mock_proxy = mock
17
+ Hopper::Channel::Queue::Proxy.expects(:new).with(mock_bunny_queue).returns(mock_proxy)
18
+
19
+ @mock_queue.expects(:for_channel).with(@mock_channel).returns(mock_bunny_queue)
20
+ result = @channel_queue.listener
21
+
22
+ assert_kind_of Hopper::Channel::Queue::Listener, result
23
+ end
24
+
25
+ test "#publisher" do
26
+ mock_bunny_queue = mock
27
+
28
+ mock_proxy = mock
29
+ Hopper::Channel::Queue::Proxy.expects(:new).with(mock_bunny_queue).returns(mock_proxy)
30
+
31
+ @mock_queue.expects(:for_channel).with(@mock_channel).returns(mock_bunny_queue)
32
+ result = @channel_queue.publisher
33
+
34
+ assert_kind_of Hopper::Channel::Queue::Publisher, result
35
+ end
36
+ end
37
+
38
+ class Hopper::Channel::Queue::ProxyTest < Test::Unit::TestCase
39
+ setup do
40
+ @mock_bunny_queue = mock
41
+
42
+ @proxy = Hopper::Channel::Queue::Proxy.new(@mock_bunny_queue)
43
+ end
44
+
45
+ test "#publish" do
46
+ mock_message = mock
47
+ @mock_bunny_queue.expects(:publish).with(mock_message, {})
48
+
49
+ @proxy.publish(mock_message)
50
+ end
51
+
52
+ test "#publish with opts" do
53
+ mock_message = mock
54
+ @mock_bunny_queue.expects(:publish).with(mock_message, {foo: :bar})
55
+
56
+ @proxy.publish(mock_message, {foo: :bar})
57
+ end
58
+
59
+ test "#subscribe" do
60
+ mock_deliverable = mock
61
+ @mock_bunny_queue.expects(:subscribe).yields(mock_deliverable)
62
+
63
+ @proxy.subscribe do |deliverable|
64
+ assert_equal [mock_deliverable], deliverable
65
+ end
66
+ end
67
+
68
+ test "#subscribe with args" do
69
+ mock_deliverable = mock
70
+ @mock_bunny_queue.expects(:subscribe).with({foo: :bar}).yields(mock_deliverable)
71
+
72
+ @proxy.subscribe(foo: :bar) do |deliverable|
73
+ assert_equal [mock_deliverable], deliverable
74
+ end
75
+ end
76
+
77
+ end
@@ -0,0 +1,35 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ require 'hopper/channel'
4
+
5
+ class Hopper::ChannelTest < Test::Unit::TestCase
6
+ setup do
7
+ @mock_bunny = mock
8
+ Bunny.expects(:new).returns(@mock_bunny)
9
+ @mock_bunny.expects(:start)
10
+
11
+ @mock_channel = mock
12
+ @mock_bunny.expects(:create_channel).returns(@mock_channel)
13
+
14
+ @mock_channel.expects(:prefetch).with(1)
15
+
16
+ @channel = Hopper::Channel.new
17
+ end
18
+
19
+ test '#queue' do
20
+ mock_queue_name = "foo"
21
+
22
+ mock_queue = mock
23
+ Hopper::Queue.expects(:new).with(mock_queue_name).returns(mock_queue)
24
+
25
+ mock_proxy = mock
26
+ Hopper::Channel::Proxy.expects(:new).with(@channel, @mock_channel).returns(mock_proxy)
27
+
28
+ mock_channel_queue = mock
29
+ Hopper::Channel::Queue.expects(:new).with(mock_proxy, mock_queue).returns(mock_channel_queue)
30
+
31
+ result = @channel.queue("foo")
32
+
33
+ assert_equal result, mock_channel_queue
34
+ end
35
+ end
File without changes
@@ -0,0 +1,41 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ require 'hopper/queue'
4
+
5
+ class Hopper::QueueTest < Test::Unit::TestCase
6
+ setup do
7
+ @queue_name = "queue-test-queue"
8
+
9
+ @queue = Hopper::Queue.new(@queue_name)
10
+ end
11
+
12
+ test '#listener' do
13
+ mock_channel = mock
14
+
15
+ mock_channel_queue = mock
16
+ mock_channel.expects(:queue).with(@queue_name).returns(mock_channel_queue)
17
+
18
+ mock_listener = mock
19
+ mock_channel_queue.expects(:listener).returns(mock_listener)
20
+
21
+ result = @queue.listener(mock_channel)
22
+
23
+ assert_equal result, mock_listener
24
+ end
25
+
26
+ test '#publisher' do
27
+ mock_channel = mock
28
+
29
+ mock_channel_queue = mock
30
+ mock_channel.expects(:queue).with(@queue_name).returns(mock_channel_queue)
31
+
32
+ mock_publisher = mock
33
+ mock_channel_queue.expects(:publisher).returns(mock_publisher)
34
+
35
+ result = @queue.publisher(mock_channel)
36
+
37
+ assert_equal result, mock_publisher
38
+
39
+ end
40
+
41
+ end
@@ -0,0 +1,24 @@
1
+ if ENV["COVERAGE"]
2
+ require 'coveralls'
3
+ require 'codeclimate-test-reporter'
4
+ require 'simplecov'
5
+ SimpleCov.start do
6
+ add_group "Lib", "lib"
7
+ add_filter "/test/"
8
+ command_name "Unit Tests"
9
+ formatter SimpleCov::Formatter::MultiFormatter[
10
+ SimpleCov::Formatter::HTMLFormatter,
11
+ Coveralls::SimpleCov::Formatter,
12
+ CodeClimate::TestReporter::Formatter
13
+ ]
14
+ end
15
+ end
16
+
17
+ require 'test/unit'
18
+
19
+ ENV["HOPPER_ENV"] = "test"
20
+
21
+ require 'mocha/setup'
22
+
23
+ module TestHelper
24
+ end
metadata ADDED
@@ -0,0 +1,201 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hopper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.pre.alpha.1
5
+ platform: ruby
6
+ authors:
7
+ - Ed Carrel
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-10-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bunny
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: msgpack
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: test-unit
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: mocha
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: bundler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.6'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.6'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rake
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '10.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '10.0'
125
+ description: A framework for task execution written around bunny
126
+ email:
127
+ - edward@carrel.org
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - ".gitignore"
133
+ - ".travis.yml"
134
+ - Gemfile
135
+ - LICENSE
136
+ - README.md
137
+ - Rakefile
138
+ - hopper.gemspec
139
+ - lib/hopper.rb
140
+ - lib/hopper/channel.rb
141
+ - lib/hopper/channel/queue.rb
142
+ - lib/hopper/channel/queue/listener.rb
143
+ - lib/hopper/channel/queue/publisher.rb
144
+ - lib/hopper/message.rb
145
+ - lib/hopper/message/delivered.rb
146
+ - lib/hopper/message/factory.rb
147
+ - lib/hopper/queue.rb
148
+ - lib/hopper/version.rb
149
+ - test/integration/hopper_test.rb
150
+ - test/integration/test_helper.rb
151
+ - test/performance/data/latin
152
+ - test/performance/data/random
153
+ - test/performance/listener.rb
154
+ - test/performance/memory_test.rb
155
+ - test/performance/test_helper.rb
156
+ - test/unit/hopper/channel/queue/listener_test.rb
157
+ - test/unit/hopper/channel/queue/publisher_test.rb
158
+ - test/unit/hopper/channel/queue_test.rb
159
+ - test/unit/hopper/channel_test.rb
160
+ - test/unit/hopper/queue/factory_test.rb
161
+ - test/unit/hopper/queue_test.rb
162
+ - test/unit/test_helper.rb
163
+ homepage: https://github.com/azanar/hopper
164
+ licenses:
165
+ - MIT
166
+ metadata: {}
167
+ post_install_message:
168
+ rdoc_options: []
169
+ require_paths:
170
+ - lib
171
+ required_ruby_version: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ required_rubygems_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">"
179
+ - !ruby/object:Gem::Version
180
+ version: 1.3.1
181
+ requirements: []
182
+ rubyforge_project:
183
+ rubygems_version: 2.2.2
184
+ signing_key:
185
+ specification_version: 4
186
+ summary: A framework for task execution written around bunny
187
+ test_files:
188
+ - test/integration/hopper_test.rb
189
+ - test/integration/test_helper.rb
190
+ - test/performance/data/latin
191
+ - test/performance/data/random
192
+ - test/performance/listener.rb
193
+ - test/performance/memory_test.rb
194
+ - test/performance/test_helper.rb
195
+ - test/unit/hopper/channel/queue/listener_test.rb
196
+ - test/unit/hopper/channel/queue/publisher_test.rb
197
+ - test/unit/hopper/channel/queue_test.rb
198
+ - test/unit/hopper/channel_test.rb
199
+ - test/unit/hopper/queue/factory_test.rb
200
+ - test/unit/hopper/queue_test.rb
201
+ - test/unit/test_helper.rb