em-dextras 0.0.1 → 0.1.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.
- data/lib/em-dextras/spec.rb +5 -3
- data/lib/em-dextras/spec/spy.rb +34 -0
- data/lib/em-dextras/version.rb +1 -1
- data/spec/em-dextras/spec/spy_spec.rb +47 -0
- metadata +5 -2
data/lib/em-dextras/spec.rb
CHANGED
@@ -1,6 +1,3 @@
|
|
1
|
-
require "em-dextras/spec/event_machine_probes"
|
2
|
-
require "em-dextras/spec/spec_matchers.rb"
|
3
|
-
|
4
1
|
require "eventmachine"
|
5
2
|
|
6
3
|
module EMDextras
|
@@ -8,3 +5,8 @@ module EMDextras
|
|
8
5
|
# Your code goes here...
|
9
6
|
end
|
10
7
|
end
|
8
|
+
|
9
|
+
require "em-dextras/spec/event_machine_probes"
|
10
|
+
require "em-dextras/spec/spec_matchers.rb"
|
11
|
+
require "em-dextras/spec/spy.rb"
|
12
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module EMDextras::Spec
|
2
|
+
class Spy
|
3
|
+
def initialize
|
4
|
+
@calls = []
|
5
|
+
end
|
6
|
+
|
7
|
+
def called?(method_name, *args)
|
8
|
+
@calls.include? :name => method_name, :args => args
|
9
|
+
end
|
10
|
+
|
11
|
+
def received_call!(method_name, *args)
|
12
|
+
probe_event_machine check: (Proc.new do
|
13
|
+
check_if_received_call(method_name, *args)
|
14
|
+
end)
|
15
|
+
end
|
16
|
+
|
17
|
+
def method_missing(method_name, *args, &block)
|
18
|
+
@calls << { :name => method_name, :args => args }
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def check_if_received_call(method_name, *args)
|
24
|
+
unless self.called?(method_name, *args)
|
25
|
+
raise ExpectationFailed, "Expected #{method_name} to have been called with parameters [#{args.join(",")}] but only received calls #{@calls.inspect}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
class ExpectationFailed < Exception
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
data/lib/em-dextras/version.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe EMDextras::Spec::Spy do
|
4
|
+
subject { described_class.new }
|
5
|
+
describe :"called?" do
|
6
|
+
it "should record calls" do
|
7
|
+
subject.foo(1, :a => "b")
|
8
|
+
|
9
|
+
subject.called?(:foo, 1, :a => "b").should be_true
|
10
|
+
subject.called?(:bar, 1, :a => "b").should be_false
|
11
|
+
subject.called?(:foo, 1, :a => "c").should be_false
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe :received_call! do
|
16
|
+
it "should do nothing if the call was really received" do
|
17
|
+
EM.run do
|
18
|
+
subject.foo(1, :a => "b")
|
19
|
+
|
20
|
+
subject.received_call!(:foo, 1, :a => "b")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should raise an exception if the call was not received" do
|
25
|
+
expect {
|
26
|
+
EM.run do
|
27
|
+
subject.foo(1, :a => "b")
|
28
|
+
|
29
|
+
subject.received_call!(:bar, 1, :a => "b")
|
30
|
+
end
|
31
|
+
}.to raise_error(/bar.*foo/)
|
32
|
+
end
|
33
|
+
|
34
|
+
context "when the method is triggered asynchronously" do
|
35
|
+
it "should should probe until the call is received" do
|
36
|
+
EM.run do
|
37
|
+
EM.next_tick do
|
38
|
+
subject.foo(1,2,3)
|
39
|
+
end
|
40
|
+
|
41
|
+
subject.received_call!(:foo, 1,2,3)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: em-dextras
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|
@@ -112,10 +112,12 @@ files:
|
|
112
112
|
- lib/em-dextras/spec.rb
|
113
113
|
- lib/em-dextras/spec/event_machine_probes.rb
|
114
114
|
- lib/em-dextras/spec/spec_matchers.rb
|
115
|
+
- lib/em-dextras/spec/spy.rb
|
115
116
|
- lib/em-dextras/spec/version.rb
|
116
117
|
- lib/em-dextras/version.rb
|
117
118
|
- spec/em-dextras/chains/synchronous_stage_spec.rb
|
118
119
|
- spec/em-dextras/chains_spec.rb
|
120
|
+
- spec/em-dextras/spec/spy_spec.rb
|
119
121
|
- spec/spec_helper
|
120
122
|
- spec/spec_helper.rb
|
121
123
|
homepage: ''
|
@@ -146,5 +148,6 @@ summary: Utilities to help working with EventMachine Deferrables. Includes probe
|
|
146
148
|
test_files:
|
147
149
|
- spec/em-dextras/chains/synchronous_stage_spec.rb
|
148
150
|
- spec/em-dextras/chains_spec.rb
|
151
|
+
- spec/em-dextras/spec/spy_spec.rb
|
149
152
|
- spec/spec_helper
|
150
153
|
- spec/spec_helper.rb
|