zss 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,11 +4,11 @@ require 'ffi-rzmq'
4
4
 
5
5
  describe ZSS::Socket do
6
6
 
7
- let(:broker_frontend) { "ipc://socket_spec" }
7
+ let(:socket_address) { "ipc://socket_spec" }
8
8
 
9
9
  let :config do
10
10
  Hashie::Mash.new(
11
- socket_address: broker_frontend,
11
+ socket_address: socket_address,
12
12
  identity: 'socket-identity',
13
13
  timeout: 300
14
14
  )
@@ -18,51 +18,43 @@ describe ZSS::Socket do
18
18
 
19
19
  let(:message) { ZSS::Message.new(address: address, payload: "PING") }
20
20
 
21
+ let(:context) { double('ZMQ::Context').as_null_object }
22
+
23
+ let(:socket) { double('ZMQ::Socket').as_null_object }
24
+
21
25
  before(:each) do
22
26
  allow(SecureRandom).to receive(:uuid) { "uuid" }
23
27
  end
24
28
 
25
- describe("#call") do
29
+ subject { ZSS::Socket.new(config) }
26
30
 
27
- subject { ZSS::Socket.new(config) }
31
+ describe("#call") do
28
32
 
29
33
  context('open ZMQ Socket') do
30
34
 
31
- it('with dealer type') do
32
- context = double('ZMQ::Context').as_null_object
35
+ before :each do
33
36
  allow(ZMQ::Context).to receive(:create) { context }
34
- allow(context).to receive(:socket) { nil }
37
+ allow(context).to receive(:socket) { socket }
38
+ allow(socket).to receive(:send_string) { -1 }
39
+ end
40
+
41
+ it('with dealer type') do
35
42
  expect(context).to receive(:socket).with(ZMQ::DEALER)
36
43
  expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
37
44
  end
38
45
 
39
46
  it('with identity set') do
40
- context = double('ZMQ::Context').as_null_object
41
- socket = double('ZMQ::Socket').as_null_object
42
- allow(ZMQ::Context).to receive(:create) { context }
43
- allow(context).to receive(:socket) { socket }
44
- allow(socket).to receive(:send_string) { -1 }
45
47
  expect(socket).to receive(:identity=).with("socket-identity#uuid")
46
48
  expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
47
49
  end
48
50
 
49
51
  it('with linger set to 0') do
50
- context = double('ZMQ::Context').as_null_object
51
- socket = double('ZMQ::Socket').as_null_object
52
- allow(ZMQ::Context).to receive(:create) { context }
53
- allow(context).to receive(:socket) { socket }
54
- allow(socket).to receive(:send_string) { -1 }
55
52
  expect(socket).to receive(:setsockopt).with(ZMQ::LINGER, 0)
56
53
  expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
57
54
  end
58
55
 
59
- it('bind to frontend') do
60
- context = double('ZMQ::Context').as_null_object
61
- socket = double('ZMQ::Socket').as_null_object
62
- allow(ZMQ::Context).to receive(:create) { context }
63
- allow(context).to receive(:socket) { socket }
64
- allow(socket).to receive(:send_string) { -1 }
65
- expect(socket).to receive(:bind).with(broker_frontend)
56
+ it('connect to socket address') do
57
+ expect(socket).to receive(:connect).with(socket_address)
66
58
  expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
67
59
  end
68
60
 
@@ -91,15 +83,12 @@ describe ZSS::Socket do
91
83
  end
92
84
 
93
85
  it('raises Socket::Error on invalid socket') do
94
- context = double('ZMQ::Context').as_null_object
95
86
  allow(ZMQ::Context).to receive(:create) { context }
96
87
  allow(context).to receive(:socket) { nil }
97
88
  expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
98
89
  end
99
90
 
100
91
  it('raises Socket::Error on invalid send send_string') do
101
- context = double('ZMQ::Context').as_null_object
102
- socket = double('ZMQ::Socket').as_null_object
103
92
  allow(ZMQ::Context).to receive(:create) { context }
104
93
  allow(context).to receive(:socket) { socket }
105
94
  allow(socket).to receive(:send_string) { -1 }
@@ -111,7 +100,6 @@ describe ZSS::Socket do
111
100
  context('clean up resources') do
112
101
 
113
102
  it('terminates context') do
114
- context = double('ZMQ::Context').as_null_object
115
103
  allow(ZMQ::Context).to receive(:create) { context }
116
104
  allow(context).to receive(:socket) { nil }
117
105
  expect(context).to receive(:terminate)
@@ -119,8 +107,6 @@ describe ZSS::Socket do
119
107
  end
120
108
 
121
109
  it('closes socket') do
122
- context = double('ZMQ::Context').as_null_object
123
- socket = double('ZMQ::Socket').as_null_object
124
110
  allow(ZMQ::Context).to receive(:create) { context }
125
111
  allow(context).to receive(:socket) { socket }
126
112
  allow(socket).to receive(:send_string) { -1 }
@@ -130,6 +116,30 @@ describe ZSS::Socket do
130
116
 
131
117
  end
132
118
 
119
+ describe('on success') do
120
+
121
+ before :each do
122
+ allow(ZMQ::Context).to receive(:create) { context }
123
+ allow(context).to receive(:socket) { socket }
124
+ end
125
+
126
+ it('returns a result') do
127
+ frames = []
128
+ allow(socket).to receive(:send_string) do |frame|
129
+ frames << frame
130
+ 0 # return success result code
131
+ end
132
+ allow(socket).to receive(:recv_strings) do |buffer|
133
+ frames.each { |f| buffer << f }
134
+ 0 # return success result code
135
+ end
136
+
137
+ result = subject.call(message)
138
+ expect(result.payload).to eq(message.payload)
139
+ end
140
+
141
+ end
142
+
133
143
  end
134
144
 
135
145
  end
data/zss.gemspec CHANGED
@@ -29,4 +29,6 @@ Gem::Specification.new do |spec|
29
29
  spec.add_dependency 'ffi-rzmq'
30
30
  spec.add_dependency 'activesupport'
31
31
  spec.add_dependency 'hashie'
32
+ spec.add_dependency 'daemons'
33
+ spec.add_dependency 'em-zeromq'
32
34
  end
metadata CHANGED
@@ -1,167 +1,195 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pedro Januário
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-03 00:00:00.000000000 Z
11
+ date: 2014-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: codeclimate-test-reporter
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: bump
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: msgpack
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ! '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ! '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: ffi-rzmq
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ! '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ! '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: activesupport
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ! '>='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ! '>='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: hashie
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ! '>='
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: '0'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ! '>='
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: daemons
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: em-zeromq
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
165
193
  - !ruby/object:Gem::Version
166
194
  version: '0'
167
195
  description: ZeroMQ SOA Suite
@@ -171,10 +199,10 @@ executables: []
171
199
  extensions: []
172
200
  extra_rdoc_files: []
173
201
  files:
174
- - .gitignore
175
- - .rspec
176
- - .rvmrc.example
177
- - .travis.yml
202
+ - ".gitignore"
203
+ - ".rspec"
204
+ - ".rvmrc.example"
205
+ - ".travis.yml"
178
206
  - Gemfile
179
207
  - Gemfile.lock
180
208
  - LICENSE
@@ -185,12 +213,18 @@ files:
185
213
  - lib/zss/configuration.rb
186
214
  - lib/zss/environment.rb
187
215
  - lib/zss/error.rb
216
+ - lib/zss/errors.json
188
217
  - lib/zss/message.rb
189
218
  - lib/zss/message/message_address.rb
190
219
  - lib/zss/message/message_type.rb
220
+ - lib/zss/message/smi.rb
221
+ - lib/zss/router.rb
222
+ - lib/zss/runner.rb
223
+ - lib/zss/service.rb
191
224
  - lib/zss/socket.rb
192
225
  - lib/zss/version.rb
193
226
  - spec/integration/client_spec.rb
227
+ - spec/integration/service_spec.rb
194
228
  - spec/integration/socket_spec.rb
195
229
  - spec/spec_broker_helper.rb
196
230
  - spec/spec_helper.rb
@@ -199,6 +233,8 @@ files:
199
233
  - spec/unit/error_spec.rb
200
234
  - spec/unit/message_address_spec.rb
201
235
  - spec/unit/message_spec.rb
236
+ - spec/unit/router_spec.rb
237
+ - spec/unit/service_spec.rb
202
238
  - spec/unit/socket_spec.rb
203
239
  - zss.gemspec
204
240
  homepage: https://github.com/pjanuario/zmq-service-suite-ruby
@@ -211,12 +247,12 @@ require_paths:
211
247
  - lib
212
248
  required_ruby_version: !ruby/object:Gem::Requirement
213
249
  requirements:
214
- - - ! '>='
250
+ - - ">="
215
251
  - !ruby/object:Gem::Version
216
252
  version: '0'
217
253
  required_rubygems_version: !ruby/object:Gem::Requirement
218
254
  requirements:
219
- - - ! '>='
255
+ - - ">="
220
256
  - !ruby/object:Gem::Version
221
257
  version: '0'
222
258
  requirements: []
@@ -227,6 +263,7 @@ specification_version: 4
227
263
  summary: ZeroMQ SOA Suite
228
264
  test_files:
229
265
  - spec/integration/client_spec.rb
266
+ - spec/integration/service_spec.rb
230
267
  - spec/integration/socket_spec.rb
231
268
  - spec/spec_broker_helper.rb
232
269
  - spec/spec_helper.rb
@@ -235,4 +272,6 @@ test_files:
235
272
  - spec/unit/error_spec.rb
236
273
  - spec/unit/message_address_spec.rb
237
274
  - spec/unit/message_spec.rb
275
+ - spec/unit/router_spec.rb
276
+ - spec/unit/service_spec.rb
238
277
  - spec/unit/socket_spec.rb