on 0.3.0 → 0.3.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.
- data/lib/on/test_helper.rb +24 -2
- data/lib/on/version.rb +1 -1
- data/test/on_test_helper_test.rb +105 -0
- metadata +6 -4
data/lib/on/test_helper.rb
CHANGED
@@ -32,6 +32,18 @@ class On
|
|
32
32
|
# on.call :success, :some, :args
|
33
33
|
# assert_callback recorder, :success, :some, :args
|
34
34
|
# end
|
35
|
+
#
|
36
|
+
# it "checks record args in a block" do
|
37
|
+
# on = On.new(:success, :failure) do |result|
|
38
|
+
# recorder.record_block
|
39
|
+
# recorder.record_callback(result, :success, :failure)
|
40
|
+
# end
|
41
|
+
# on.call :success, :some, :args
|
42
|
+
# assert_callback recorder, :success do |some, args|
|
43
|
+
# assert_equal :some, some
|
44
|
+
# assert_equal :args, args
|
45
|
+
# end
|
46
|
+
# end
|
35
47
|
# end
|
36
48
|
module TestHelper
|
37
49
|
# Asserts that a certain callbacks has been recorded by +recorder+.
|
@@ -41,10 +53,16 @@ class On
|
|
41
53
|
# assert_callback recorder, :success, "some", "args"
|
42
54
|
#
|
43
55
|
def assert_callback(recorder, name, *args)
|
56
|
+
raise ArgumentError, "Provide args or block but not both" if block_given? && !args.empty?
|
57
|
+
|
44
58
|
callback = recorder.last_record
|
45
59
|
assert callback, "No callbacks found"
|
46
60
|
assert_equal name, callback.name, "Callback was #{callback}"
|
47
|
-
|
61
|
+
if block_given?
|
62
|
+
yield *callback.args
|
63
|
+
else
|
64
|
+
assert_equal args, callback.args, "Callback was #{callback}"
|
65
|
+
end
|
48
66
|
end
|
49
67
|
|
50
68
|
# Asserts that *no* callbacks has been recorder by +recorder+.
|
@@ -101,11 +119,15 @@ class On
|
|
101
119
|
def record_callback(on, *names)
|
102
120
|
names.each do |name|
|
103
121
|
on.on name do |*args|
|
104
|
-
|
122
|
+
callback_recorded(name, args)
|
105
123
|
end
|
106
124
|
end
|
107
125
|
end
|
108
126
|
|
127
|
+
def callback_recorded(name, args)
|
128
|
+
@callbacks << Callback.new(name, args)
|
129
|
+
end
|
130
|
+
|
109
131
|
# Short-hand for &+recorder.record_all+.
|
110
132
|
def to_proc
|
111
133
|
record_all
|
data/lib/on/version.rb
CHANGED
@@ -0,0 +1,105 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
require 'on'
|
4
|
+
|
5
|
+
class OnTestHelperTest < Testem
|
6
|
+
context "assert_callback" do
|
7
|
+
test "match w/o args" do
|
8
|
+
record :foo
|
9
|
+
assert_callback recorder, :foo
|
10
|
+
end
|
11
|
+
|
12
|
+
test "match with args" do
|
13
|
+
record :foo, :bar, :baz
|
14
|
+
assert_callback recorder, :foo, :bar, :baz
|
15
|
+
end
|
16
|
+
|
17
|
+
test "match with block" do
|
18
|
+
called = false
|
19
|
+
record :foo, :bar, :baz
|
20
|
+
assert_callback recorder, :foo do |bar, baz|
|
21
|
+
called = true
|
22
|
+
assert_equal :bar, bar
|
23
|
+
assert_equal :baz, baz
|
24
|
+
end
|
25
|
+
assert called
|
26
|
+
end
|
27
|
+
|
28
|
+
test "no callbacks found" do
|
29
|
+
e = assert_raises MiniTest::Assertion do
|
30
|
+
assert_callback recorder, :foo
|
31
|
+
end
|
32
|
+
assert_equal "No callbacks found", e.message
|
33
|
+
end
|
34
|
+
|
35
|
+
test "no callbacks found anymore" do
|
36
|
+
record :foo
|
37
|
+
assert_callback recorder, :foo
|
38
|
+
e = assert_raises MiniTest::Assertion do
|
39
|
+
assert_callback recorder, :foo
|
40
|
+
end
|
41
|
+
assert_equal "No callbacks found", e.message
|
42
|
+
end
|
43
|
+
|
44
|
+
test "mismatch name" do
|
45
|
+
record :foo
|
46
|
+
|
47
|
+
e = assert_raises MiniTest::Assertion do
|
48
|
+
assert_callback recorder, :bar
|
49
|
+
end
|
50
|
+
assert_match /Expected: :bar\n\s*Actual: :foo/, e.message
|
51
|
+
end
|
52
|
+
|
53
|
+
test "mismatch args" do
|
54
|
+
record :foo, :bar
|
55
|
+
e = assert_raises MiniTest::Assertion do
|
56
|
+
assert_callback recorder, :foo, :baz
|
57
|
+
end
|
58
|
+
assert_match /Expected: \[:baz\]\n\s*Actual: \[:bar\]/, e.message
|
59
|
+
end
|
60
|
+
|
61
|
+
test "mismatch block" do
|
62
|
+
called = false
|
63
|
+
record :foo, :bar
|
64
|
+
e = assert_raises MiniTest::Assertion do
|
65
|
+
assert_callback recorder, :foo do |bar|
|
66
|
+
called = true
|
67
|
+
assert_equal :baz, bar
|
68
|
+
end
|
69
|
+
end
|
70
|
+
assert_match /Expected: :baz\n\s*Actual: :bar/, e.message
|
71
|
+
assert called
|
72
|
+
end
|
73
|
+
|
74
|
+
test "fail on args and block" do
|
75
|
+
called = false
|
76
|
+
e = assert_raises ArgumentError do
|
77
|
+
assert_callback recorder, :foo, :bar do
|
78
|
+
called = true
|
79
|
+
end
|
80
|
+
end
|
81
|
+
assert_equal "Provide args or block but not both", e.message
|
82
|
+
refute called
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context "refute_callbacks" do
|
87
|
+
test "nothing recorded" do
|
88
|
+
refute_callbacks recorder
|
89
|
+
end
|
90
|
+
|
91
|
+
test "fail when something recorded" do
|
92
|
+
record :foo
|
93
|
+
e = assert_raises MiniTest::Assertion do
|
94
|
+
refute_callbacks recorder
|
95
|
+
end
|
96
|
+
assert_match /Something has been recorded/, e.message
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
private
|
101
|
+
|
102
|
+
def record(name, *args)
|
103
|
+
recorder.callback_recorded(name, args)
|
104
|
+
end
|
105
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: 'on'
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
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: 2012-12-
|
12
|
+
date: 2012-12-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- test/integration_test.rb
|
98
98
|
- test/on_proc_test.rb
|
99
99
|
- test/on_test.rb
|
100
|
+
- test/on_test_helper_test.rb
|
100
101
|
homepage: https://github.com/neopoly/on
|
101
102
|
licenses: []
|
102
103
|
post_install_message:
|
@@ -111,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
112
|
version: '0'
|
112
113
|
segments:
|
113
114
|
- 0
|
114
|
-
hash:
|
115
|
+
hash: 1483705294558873466
|
115
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
117
|
none: false
|
117
118
|
requirements:
|
@@ -120,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
121
|
version: '0'
|
121
122
|
segments:
|
122
123
|
- 0
|
123
|
-
hash:
|
124
|
+
hash: 1483705294558873466
|
124
125
|
requirements: []
|
125
126
|
rubyforge_project:
|
126
127
|
rubygems_version: 1.8.24
|
@@ -132,3 +133,4 @@ test_files:
|
|
132
133
|
- test/integration_test.rb
|
133
134
|
- test/on_proc_test.rb
|
134
135
|
- test/on_test.rb
|
136
|
+
- test/on_test_helper_test.rb
|