evented-spec 0.9.0 → 1.0.0.beta1

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.
data/.gitignore CHANGED
@@ -27,4 +27,5 @@ log
27
27
  Gemfile.lock
28
28
 
29
29
  ## PROJECT::SPECIFIC
30
- spec/amqp.yml
30
+ spec/amqp.yml
31
+ vendor
data/HISTORY CHANGED
@@ -102,3 +102,8 @@
102
102
  * EventedSpec::CoolioSpec module similar to EMSpec and AMQPSpec
103
103
  * coolio_before / coolio_after hooks
104
104
  * #delayed helper
105
+
106
+ == 0.4.1 ... 0.10.0.pre / 2011-04-29 ... 2012-02-17
107
+
108
+ * API wasn't changed at all
109
+ * Minitest support (as in 'minitest/spec')
@@ -189,7 +189,7 @@ Reason is simple: if we don't restart event loop every spec example, all kinds o
189
189
 
190
190
  h2. Compatibility
191
191
 
192
- EventedSpec is tested with RSpec >= 2.5.0, Cool.io ~> 1.0.0, EventMachine >= 0.12.10, and AMQP >= 0.8.0. Running it with RSpec 1.3 and/or AMQP 0.7.0 is not unheard of, although not tested in all its entirety.
192
+ EventedSpec is tested with RSpec >= 2.5.0 / Minitest >= 2.11.2, Cool.io ~> 1.0.0, EventMachine >= 0.12.10, and AMQP >= 0.8.0. Running it with RSpec 1.3 and/or AMQP 0.7.0 is not unheard of, although not tested in all its entirety.
193
193
 
194
194
  h2. See also
195
195
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.0
1
+ 1.0.0.beta1
@@ -15,7 +15,9 @@ module EventedSpec
15
15
  module ClassMethods
16
16
  def it(*args, &block)
17
17
  if block
18
- new_block = Proc.new {|example_group_instance| (example_group_instance || self).instance_eval { amqp(&block) } }
18
+ new_block = lambda do |*args|
19
+ amqp(&block)
20
+ end
19
21
  super(*args, &new_block)
20
22
  else
21
23
  # pending example
@@ -14,7 +14,9 @@ module EventedSpec
14
14
  if block
15
15
  # Shared example groups seem to pass example group instance
16
16
  # to the actual example block
17
- new_block = Proc.new {|example_group_instance| (example_group_instance || self).instance_eval { coolio(&block) } }
17
+ new_block = lambda do |*args|
18
+ coolio(&block)
19
+ end
18
20
  super(*args, &new_block)
19
21
  else
20
22
  # pending example
@@ -14,7 +14,9 @@ module EventedSpec
14
14
  if block
15
15
  # Shared example groups seem to pass example group instance
16
16
  # to the actual example block
17
- new_block = Proc.new {|example_group_instance| (example_group_instance || self).instance_eval { em(&block) } }
17
+ new_block = lambda do |*args|
18
+ em(&block)
19
+ end
18
20
  super(*args, &new_block)
19
21
  else
20
22
  # pending example
@@ -0,0 +1,75 @@
1
+ require "spec_helper"
2
+
3
+ describe "EventedSpec AMQP bindings" do
4
+ include EventedSpec::SpecHelper
5
+ default_timeout 0.5
6
+
7
+ def amqp_running?
8
+ EM.reactor_running? && !!AMQP.connection
9
+ end # amqp_running?
10
+
11
+
12
+ it "runs after amqp is connected" do
13
+ amqp_running?.must_equal false
14
+ amqp do
15
+ amqp_running?.must_equal true
16
+ done
17
+ end
18
+ amqp_running?.must_equal false
19
+ end
20
+
21
+ describe "hooks" do
22
+ def hooks
23
+ @hooks ||= []
24
+ end
25
+
26
+ before { hooks << :before }
27
+ em_before { hooks << :em_before }
28
+ amqp_before { hooks << :amqp_before }
29
+ amqp_after { hooks << :amqp_after }
30
+ em_after { hooks << :em_after }
31
+ after { hooks << :after }
32
+
33
+ it "execute in proper order" do
34
+ hooks.must_equal [:before]
35
+ amqp do
36
+ hooks.must_equal [:before, :em_before, :amqp_before]
37
+ done
38
+ end
39
+ hooks.must_equal [:before, :em_before, :amqp_before,
40
+ :amqp_after, :em_after]
41
+ end
42
+ end
43
+
44
+ describe EventedSpec::AMQPSpec do
45
+ include EventedSpec::AMQPSpec
46
+
47
+ it "runs after amqp is connected" do
48
+ amqp_running?.must_equal true
49
+ done
50
+ end
51
+ end
52
+
53
+ describe "actual amqp functionality" do
54
+ def publish_and_consume_once(queue_name="test_sink", data="data")
55
+ AMQP::Channel.new do |channel, _|
56
+ exchange = channel.direct(queue_name)
57
+ queue = channel.queue(queue_name).bind(exchange)
58
+ queue.subscribe do |hdr, msg|
59
+ hdr.must_be_kind_of AMQP::Header
60
+ msg.must_equal data
61
+ done { queue.unsubscribe; queue.delete }
62
+ end
63
+ EM.add_timer(0.2) do
64
+ exchange.publish data
65
+ end
66
+ end
67
+ end
68
+
69
+ it "can connect and publish something" do
70
+ amqp do
71
+ publish_and_consume_once
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe EventedSpec do
4
+ describe "inclusion of helper modules" do
5
+ include EventedSpec::SpecHelper
6
+
7
+ it "creates reactor launchers" do
8
+ [:em, :amqp, :coolio].each do |method|
9
+ self.respond_to?(method).must_equal true
10
+ end
11
+ end
12
+
13
+ it "adds various helpers" do
14
+ [:done, :timeout, :delayed].each do |method|
15
+ self.must_respond_to method
16
+ end
17
+ end
18
+
19
+ it "creates hooks and other group helpers" do
20
+ [:em_before, :em_after, :amqp_before,
21
+ :amqp_after, :coolio_before, :coolio_after,
22
+ :default_timeout, :default_options].each do |method|
23
+ self.class.must_respond_to method
24
+ end
25
+ end
26
+
27
+ describe "propagation to sub contexts" do
28
+ it "should work" do
29
+ [:em, :amqp, :coolio].each do |method|
30
+ self.must_respond_to method
31
+ end
32
+
33
+ [:done, :timeout, :delayed].each do |method|
34
+ self.must_respond_to method
35
+ end
36
+
37
+ [:em_before, :em_after, :amqp_before,
38
+ :amqp_after, :coolio_before, :coolio_after,
39
+ :default_timeout, :default_options].each do |method|
40
+ self.class.must_respond_to method
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,64 @@
1
+ require "spec_helper"
2
+
3
+ if !(RUBY_PLATFORM =~ /java/)
4
+ describe "EventedSpec cool.io bindings" do
5
+ def coolio_running?
6
+ !!Coolio::Loop.default.instance_variable_get(:@running)
7
+ end # coolio_running?
8
+
9
+ include EventedSpec::SpecHelper
10
+ default_timeout 0.5
11
+
12
+ it "can run inside of em loop" do
13
+ coolio_running?.must_equal false
14
+ coolio do
15
+ coolio_running?.must_equal true
16
+ done
17
+ end
18
+ coolio_running?.must_equal false
19
+ end
20
+
21
+ describe "hooks" do
22
+ describe "hooks" do
23
+ def hooks
24
+ @hooks ||= []
25
+ end
26
+
27
+ before { hooks << :before }
28
+ coolio_before { hooks << :coolio_before }
29
+ coolio_after { hooks << :coolio_after }
30
+ after { hooks << :after }
31
+
32
+ it "execute in proper order" do
33
+ hooks.must_equal [:before]
34
+ coolio do
35
+ hooks.must_equal [:before, :coolio_before]
36
+ done
37
+ end
38
+ hooks.must_equal [:before, :coolio_before, :coolio_after]
39
+ end
40
+ end
41
+ end
42
+
43
+
44
+ describe "#delayed" do
45
+ default_timeout 0.7
46
+ it "works as intended" do
47
+ coolio do
48
+ time = Time.now
49
+ delayed(0.3) { Time.now.must_be_close_to time + 0.3, 0.1 }
50
+ done(0.4)
51
+ end
52
+ end
53
+ end
54
+
55
+ describe EventedSpec::CoolioSpec do
56
+ include EventedSpec::CoolioSpec
57
+ it "wraps the whole example" do
58
+ coolio_running?.must_equal true
59
+ done
60
+ end
61
+ end
62
+
63
+ end
64
+ end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+
3
+ describe "EventedSpec EventMachine bindings" do
4
+ include EventedSpec::SpecHelper
5
+ default_timeout 0.5
6
+
7
+ it "can run inside of em loop" do
8
+ EM.reactor_running?.must_equal false
9
+ em do
10
+ EM.reactor_running?.must_equal true
11
+ done
12
+ end
13
+ EM.reactor_running?.must_equal false
14
+ end
15
+
16
+ describe "hooks" do
17
+ def hooks
18
+ @hooks ||= []
19
+ end
20
+
21
+ before { hooks << :before }
22
+ em_before { hooks << :em_before }
23
+ em_after { hooks << :em_after }
24
+ after { hooks << :after }
25
+
26
+ it "execute in proper order" do
27
+ hooks.must_equal [:before]
28
+ em do
29
+ hooks.must_equal [:before, :em_before]
30
+ done
31
+ end
32
+ hooks.must_equal [:before, :em_before, :em_after]
33
+ end
34
+ end
35
+
36
+ describe "#delayed" do
37
+ default_timeout 0.7
38
+ it "works as intended" do
39
+ em do
40
+ time = Time.now
41
+ delayed(0.3) { Time.now.must_be_close_to time + 0.3, 0.1 }
42
+ done(0.4)
43
+ end
44
+ end
45
+ end
46
+
47
+ describe EventedSpec::EMSpec do
48
+ include EventedSpec::EMSpec
49
+ it "wraps the whole example" do
50
+ EM.reactor_running?.must_equal true
51
+ done
52
+ end
53
+ end
54
+ end
@@ -0,0 +1 @@
1
+ require 'evented-spec'
@@ -0,0 +1,18 @@
1
+ require 'bundler'
2
+ Bundler.setup
3
+ Bundler.require :default, :test
4
+
5
+ spec_dir = File.expand_path("..", __FILE__)
6
+ lib_dir = File.expand_path("../../lib", __FILE__)
7
+ if ARGV.delete('--minitest')
8
+ require 'minitest/spec'
9
+ require 'minitest/autorun'
10
+ $LOAD_PATH.unshift "#{spec_dir}/minitest"
11
+ $LOAD_PATH.unshift lib_dir
12
+ Dir.glob("#{spec_dir}/**/*_minispec.rb").each {|spec| require spec }
13
+ else
14
+ require 'rspec'
15
+ require 'rspec/autorun'
16
+ Dir.glob("#{spec_dir}/**/*_spec.rb").each {|spec| require spec }
17
+ end
18
+
@@ -8,8 +8,9 @@ namespace :spec do
8
8
  RSpec::Core::RakeTask.new(:all){|task|}
9
9
 
10
10
  desc "Run all non-failing specs (for CI)"
11
- RSpec::Core::RakeTask.new(:ci) do |task|
11
+ task(:ci) do |task|
12
12
  ENV["EXCLUDE_DELIBERATELY_FAILING_SPECS"] = "1"
13
+ exec "ruby spec/run.rb && ruby spec/run.rb --minitest"
13
14
  end
14
15
 
15
16
  desc "Run specs with RCov"
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evented-spec
3
3
  version: !ruby/object:Gem::Version
4
- hash: 59
5
- prerelease:
4
+ hash: 3099509867
5
+ prerelease: 6
6
6
  segments:
7
+ - 1
7
8
  - 0
8
- - 9
9
9
  - 0
10
- version: 0.9.0
10
+ - beta
11
+ - 1
12
+ version: 1.0.0.beta1
11
13
  platform: ruby
12
14
  authors:
13
15
  - Arvicco
@@ -16,8 +18,7 @@ autorequire:
16
18
  bindir: bin
17
19
  cert_chain: []
18
20
 
19
- date: 2011-07-25 00:00:00 +04:00
20
- default_executable:
21
+ date: 2012-02-18 00:00:00 Z
21
22
  dependencies:
22
23
  - !ruby/object:Gem::Dependency
23
24
  name: rspec
@@ -43,7 +44,7 @@ dependencies:
43
44
  requirements:
44
45
  - - ~>
45
46
  - !ruby/object:Gem::Version
46
- hash: 15424151
47
+ hash: 1956222863
47
48
  segments:
48
49
  - 0
49
50
  - 8
@@ -137,6 +138,12 @@ files:
137
138
  - spec/evented-spec/evented_spec_metadata_spec.rb
138
139
  - spec/evented-spec/util_spec.rb
139
140
  - spec/integration/failing_rspec_spec.rb
141
+ - spec/minitest/amqp_integration_minispec.rb
142
+ - spec/minitest/basic_integration_minispec.rb
143
+ - spec/minitest/coolio_integration_minispec.rb
144
+ - spec/minitest/em_integration_minispec.rb
145
+ - spec/minitest/spec_helper.rb
146
+ - spec/run.rb
140
147
  - spec/spec.opts
141
148
  - spec/spec_helper.rb
142
149
  - tasks/common.rake
@@ -151,7 +158,6 @@ files:
151
158
  - VERSION
152
159
  - HISTORY
153
160
  - .gitignore
154
- has_rdoc: true
155
161
  homepage: http://github.com/ruby-amqp/evented-spec
156
162
  licenses: []
157
163
 
@@ -177,16 +183,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
183
  required_rubygems_version: !ruby/object:Gem::Requirement
178
184
  none: false
179
185
  requirements:
180
- - - ">="
186
+ - - ">"
181
187
  - !ruby/object:Gem::Version
182
- hash: 3
188
+ hash: 25
183
189
  segments:
184
- - 0
185
- version: "0"
190
+ - 1
191
+ - 3
192
+ - 1
193
+ version: 1.3.1
186
194
  requirements: []
187
195
 
188
196
  rubyforge_project: evented-spec
189
- rubygems_version: 1.6.2
197
+ rubygems_version: 1.8.15
190
198
  signing_key:
191
199
  specification_version: 3
192
200
  summary: Simple API for writing asynchronous EventMachine/AMQP specs. Supports RSpec and RSpec2.
@@ -201,5 +209,11 @@ test_files:
201
209
  - spec/evented-spec/evented_spec_metadata_spec.rb
202
210
  - spec/evented-spec/util_spec.rb
203
211
  - spec/integration/failing_rspec_spec.rb
212
+ - spec/minitest/amqp_integration_minispec.rb
213
+ - spec/minitest/basic_integration_minispec.rb
214
+ - spec/minitest/coolio_integration_minispec.rb
215
+ - spec/minitest/em_integration_minispec.rb
216
+ - spec/minitest/spec_helper.rb
217
+ - spec/run.rb
204
218
  - spec/spec.opts
205
219
  - spec/spec_helper.rb