synthesis 0.0.13 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/synthesis/adapter/expectations.rb +4 -4
- data/lib/synthesis/adapter/mocha.rb +4 -4
- data/lib/synthesis/adapter/rspec.rb +4 -4
- data/lib/synthesis/expectation_interceptor.rb +3 -3
- data/lib/synthesis/expectation_matcher.rb +1 -1
- data/lib/synthesis/expectation_record_enabled.rb +1 -1
- data/lib/synthesis/util/mock_instance/mocha.rb +18 -0
- data/lib/synthesis/util/mock_instance/rspec.rb +37 -0
- data/test/synthesis/expectation_matcher_test.rb +1 -1
- metadata +4 -2
data/Rakefile
CHANGED
@@ -15,13 +15,13 @@ module Synthesis
|
|
15
15
|
Object.extend(ExpectationRecordEnabled)
|
16
16
|
Object.record_expectations_on(:expects)
|
17
17
|
Mocha::Expectation.extend(ExpectationInterceptor)
|
18
|
-
Mocha::Expectation.
|
19
|
-
Mocha::Expectation.
|
18
|
+
Mocha::Expectation.record_expected_argument_types_on(:with)
|
19
|
+
Mocha::Expectation.record_expected_return_values_on(:returns)
|
20
20
|
end
|
21
21
|
|
22
22
|
def stop_collecting_expectations
|
23
|
-
Mocha::Expectation.
|
24
|
-
Object.
|
23
|
+
Mocha::Expectation.stop_intercepting!
|
24
|
+
Object.stop_recording!
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -16,13 +16,13 @@ module Synthesis
|
|
16
16
|
Object.extend(ExpectationRecordEnabled)
|
17
17
|
Object.record_expectations_on(:expects)
|
18
18
|
Mocha::Expectation.extend(ExpectationInterceptor)
|
19
|
-
Mocha::Expectation.
|
20
|
-
Mocha::Expectation.
|
19
|
+
Mocha::Expectation.record_expected_argument_types_on(:with)
|
20
|
+
Mocha::Expectation.record_expected_return_values_on(:returns)
|
21
21
|
end
|
22
22
|
|
23
23
|
def stop_collecting_expectations
|
24
|
-
Mocha::Expectation.
|
25
|
-
Object.
|
24
|
+
Mocha::Expectation.stop_intercepting!
|
25
|
+
Object.stop_recording!
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -20,13 +20,13 @@ module Synthesis
|
|
20
20
|
Spec::Mocks::Methods.extend(ExpectationRecordEnabled)
|
21
21
|
Spec::Mocks::Methods.record_expectations_on(:should_receive)
|
22
22
|
Spec::Mocks::MessageExpectation.extend(ExpectationInterceptor)
|
23
|
-
Spec::Mocks::MessageExpectation.
|
24
|
-
Spec::Mocks::MessageExpectation.
|
23
|
+
Spec::Mocks::MessageExpectation.record_expected_argument_types_on(:with)
|
24
|
+
Spec::Mocks::MessageExpectation.record_expected_return_values_on(:and_return)
|
25
25
|
end
|
26
26
|
|
27
27
|
def stop_collecting_expectations
|
28
|
-
Spec::Mocks::MessageExpectation.
|
29
|
-
Spec::Mocks::Methods.
|
28
|
+
Spec::Mocks::MessageExpectation.stop_intercepting!
|
29
|
+
Spec::Mocks::Methods.stop_recording!
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
@@ -5,7 +5,7 @@ module Synthesis
|
|
5
5
|
module ExpectationInterceptor
|
6
6
|
# Intercept the mock object framework's expectation method for declaring a mocked
|
7
7
|
# method's arguments so that Synthesis can record them.
|
8
|
-
def
|
8
|
+
def record_expected_argument_types_on(method_name)
|
9
9
|
@original_with = method_name
|
10
10
|
|
11
11
|
class_eval <<-end_eval
|
@@ -20,7 +20,7 @@ module Synthesis
|
|
20
20
|
|
21
21
|
# Intercept the mock object framework's expectation method for declaring a mocked
|
22
22
|
# method's return values so that Synthesis can record them.
|
23
|
-
def
|
23
|
+
def record_expected_return_values_on(method_name)
|
24
24
|
@original_returns = method_name
|
25
25
|
|
26
26
|
class_eval <<-end_eval
|
@@ -37,7 +37,7 @@ module Synthesis
|
|
37
37
|
# Restore the original methods ExpectationInterceptor has rewritten and
|
38
38
|
# undefine their intercepted counterparts. Undefine the synthesis_expectation
|
39
39
|
# accessors.
|
40
|
-
def
|
40
|
+
def stop_intercepting!
|
41
41
|
class_eval <<-end_eval
|
42
42
|
alias #{@original_with} intercepted_#{@original_with}
|
43
43
|
alias #{@original_returns} intercepted_#{@original_returns}
|
@@ -17,7 +17,7 @@ module Synthesis
|
|
17
17
|
|
18
18
|
def return_values_match?
|
19
19
|
return true unless @expectation_one.return_values_defined? || @expectation_two.return_values_defined?
|
20
|
-
|
20
|
+
@expectation_one.return_value_types == @expectation_two.return_value_types
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -22,7 +22,7 @@ module Synthesis
|
|
22
22
|
|
23
23
|
# Restore the original methods ExpectationRecordEnabled has rewritten and
|
24
24
|
# undefine their intercepted counterparts.
|
25
|
-
def
|
25
|
+
def stop_recording!
|
26
26
|
class_eval <<-end_eval
|
27
27
|
alias #{@original_expects} intercepted_#{@original_expects}
|
28
28
|
undef intercepted_#{@original_expects}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class Object
|
2
|
+
def self.mock_instance(*args)
|
3
|
+
class_eval do
|
4
|
+
alias original_initialize initialize
|
5
|
+
def initialize()end
|
6
|
+
end
|
7
|
+
|
8
|
+
instance = new
|
9
|
+
expects(:new).with(*args).returns(instance)
|
10
|
+
|
11
|
+
class_eval do
|
12
|
+
alias initialize original_initialize
|
13
|
+
undef original_initialize
|
14
|
+
end
|
15
|
+
|
16
|
+
return instance
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Spec::Mocks::Methods
|
2
|
+
def mock_instance(*args)
|
3
|
+
class_eval do
|
4
|
+
alias original_initialize initialize
|
5
|
+
def initialize()end
|
6
|
+
end
|
7
|
+
|
8
|
+
instance = new
|
9
|
+
should_receive(:new).with(*args).and_return(instance)
|
10
|
+
|
11
|
+
class_eval do
|
12
|
+
alias initialize original_initialize
|
13
|
+
undef original_initialize
|
14
|
+
end
|
15
|
+
|
16
|
+
return instance
|
17
|
+
end
|
18
|
+
|
19
|
+
# Don't know if this sucks or not...
|
20
|
+
|
21
|
+
# def stub_instance
|
22
|
+
# class_eval do
|
23
|
+
# alias original_initialize initialize
|
24
|
+
# def initialize()end
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
# instance = new
|
28
|
+
# stub!(:new).and_return(instance)
|
29
|
+
#
|
30
|
+
# class_eval do
|
31
|
+
# alias initialize original_initialize
|
32
|
+
# undef original_initialize
|
33
|
+
# end
|
34
|
+
#
|
35
|
+
# return instance
|
36
|
+
# end
|
37
|
+
end
|
@@ -39,7 +39,7 @@ module Synthesis
|
|
39
39
|
assert(!ExpectationMatcher.new(exp1, exp2).match?)
|
40
40
|
end
|
41
41
|
|
42
|
-
def
|
42
|
+
def test_match_based_on_return_value_types
|
43
43
|
exp1 = Expectation.new(Object.new, :foo, :track, [Array, Hash], [[1], {:a => :b}])
|
44
44
|
exp2 = Expectation.new(Object.new, :foo, :track, [Array, Hash], [[4], {:a => 9}])
|
45
45
|
assert(ExpectationMatcher.new(exp1, exp2).match?)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: synthesis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stuart Caborn, George Malamidis
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-05-
|
12
|
+
date: 2008-05-21 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -41,6 +41,8 @@ files:
|
|
41
41
|
- lib/synthesis/reporter.rb
|
42
42
|
- lib/synthesis/runner.rb
|
43
43
|
- lib/synthesis/task.rb
|
44
|
+
- lib/synthesis/util/mock_instance/mocha.rb
|
45
|
+
- lib/synthesis/util/mock_instance/rspec.rb
|
44
46
|
- lib/synthesis.rb
|
45
47
|
- test/synthesis/adapter/mocha/expectation_record_test.rb
|
46
48
|
- test/synthesis/adapter/mocha/helper.rb
|