rr 1.1.2 → 3.0.2
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.
- checksums.yaml +5 -5
- data/Appraisals +3 -43
- data/CHANGES.md +93 -0
- data/CREDITS.md +5 -0
- data/Gemfile +1 -17
- data/README.md +29 -32
- data/Rakefile +42 -40
- data/doc/02_syntax_comparison.md +1 -0
- data/lib/rr/class_instance_method_defined.rb +1 -1
- data/lib/rr/core_ext/array.rb +2 -0
- data/lib/rr/core_ext/hash.rb +2 -0
- data/lib/rr/deprecations.rb +97 -0
- data/lib/rr/double.rb +28 -10
- data/lib/rr/double_definitions/double_definition.rb +39 -16
- data/lib/rr/double_definitions/double_definition_create.rb +5 -5
- data/lib/rr/double_definitions/double_definition_create_blank_slate.rb +10 -4
- data/lib/rr/double_definitions/double_injections/any_instance_of.rb +1 -1
- data/lib/rr/double_definitions/double_injections/instance.rb +2 -2
- data/lib/rr/double_definitions/strategies/strategy.rb +27 -8
- data/lib/rr/double_definitions/strategies/verification/mock.rb +8 -2
- data/lib/rr/double_matches.rb +4 -3
- data/lib/rr/dsl.rb +152 -0
- data/lib/rr/expectations/any_argument_expectation.rb +4 -4
- data/lib/rr/expectations/argument_equality_expectation.rb +43 -5
- data/lib/rr/injections/double_injection.rb +85 -26
- data/lib/rr/injections/method_missing_injection.rb +37 -6
- data/lib/rr/integrations/minitest_4.rb +1 -1
- data/lib/rr/integrations/minitest_4_active_support.rb +1 -1
- data/lib/rr/integrations/rspec/invocation_matcher.rb +0 -8
- data/lib/rr/integrations/rspec_2.rb +20 -2
- data/lib/rr/keyword_arguments.rb +15 -0
- data/lib/rr/method_dispatches/base_method_dispatch.rb +22 -5
- data/lib/rr/method_dispatches/method_dispatch.rb +21 -10
- data/lib/rr/method_dispatches/method_missing_dispatch.rb +14 -5
- data/lib/rr/recorded_call.rb +35 -0
- data/lib/rr/recorded_calls.rb +23 -9
- data/lib/rr/space.rb +15 -5
- data/lib/rr/spy_verification.rb +13 -5
- data/lib/rr/version.rb +1 -1
- data/lib/rr/wildcard_matchers.rb +10 -10
- data/lib/rr/without_autohook.rb +7 -14
- data/rr.gemspec +8 -3
- data/spec/defines_spec_suite_tasks.rb +12 -0
- data/spec/global_helper.rb +5 -0
- data/spec/spec_suite_configuration.rb +1 -7
- data/spec/suites.yml +0 -14
- data/spec/suites/rspec_2/functional/any_instance_of_spec.rb +133 -33
- data/spec/suites/rspec_2/functional/dont_allow_spec.rb +13 -8
- data/spec/suites/rspec_2/functional/mock_bang_spec.rb +20 -0
- data/spec/suites/rspec_2/functional/mock_instance_of_spec.rb +14 -0
- data/spec/suites/rspec_2/functional/mock_instance_of_strong_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/mock_proxy_instance_of_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/mock_proxy_spec.rb +14 -0
- data/spec/suites/rspec_2/functional/mock_spec.rb +8 -232
- data/spec/suites/rspec_2/functional/mock_strong_spec.rb +14 -0
- data/spec/suites/rspec_2/functional/received_spec.rb +16 -0
- data/spec/suites/rspec_2/functional/spy_spec.rb +89 -28
- data/spec/suites/rspec_2/functional/stub_bang_spec.rb +20 -0
- data/spec/suites/rspec_2/functional/stub_instance_of_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/stub_instance_of_strong_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/stub_proxy_instance_of_spec.rb +16 -0
- data/spec/suites/rspec_2/functional/stub_proxy_spec.rb +45 -0
- data/spec/suites/rspec_2/functional/stub_spec.rb +42 -161
- data/spec/suites/rspec_2/functional/stub_strong_spec.rb +15 -0
- data/spec/suites/rspec_2/helper.rb +2 -2
- data/spec/suites/rspec_2/support/mixins/double_definition_creator_helpers.rb +173 -0
- data/spec/suites/rspec_2/support/mixins/mock_definition_creator_helpers.rb +45 -0
- data/spec/suites/rspec_2/support/mixins/proxy_definition_creator_helpers.rb +33 -0
- data/spec/suites/rspec_2/support/mixins/stub_creator_helpers.rb +43 -0
- data/spec/suites/rspec_2/support/mixins/stub_definition_creator_helpers.rb +45 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_with_never_called_qualifier.rb +39 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_with_times_called_qualifier.rb +50 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_without_qualifiers.rb +131 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/dont_allow.rb +148 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_instance_of.rb +26 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_instance_of_strong.rb +28 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_proxy.rb +11 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_strong.rb +37 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mocking.rb +107 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_instance_of.rb +32 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_instance_of_strong.rb +39 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_proxy.rb +11 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_strong.rb +37 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stubbing.rb +57 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/array_flatten_bug.rb +35 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/block_form.rb +31 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/comparing_arity.rb +63 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/object_is_proxy.rb +43 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/sequential_invocations.rb +26 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/setting_implementation.rb +51 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/yields.rb +81 -0
- data/spec/suites/rspec_2/unit/core_ext/enumerable_spec.rb +0 -28
- data/spec/suites/rspec_2/unit/deprecations_spec.rb +27 -0
- data/spec/suites/rspec_2/unit/double_definitions/double_definition_create_spec.rb +18 -18
- data/spec/suites/rspec_2/unit/dsl/double_creators_spec.rb +133 -0
- data/spec/suites/rspec_2/unit/dsl/space_spec.rb +99 -0
- data/spec/suites/rspec_2/unit/dsl/wildcard_matchers_spec.rb +67 -0
- data/spec/suites/rspec_2/unit/expectations/any_argument_expectation_spec.rb +9 -9
- data/spec/suites/rspec_2/unit/expectations/argument_equality_expectation_spec.rb +21 -21
- data/spec/suites/rspec_2/unit/expectations/boolean_argument_equality_expectation_spec.rb +4 -4
- data/spec/suites/rspec_2/unit/expectations/hash_including_argument_equality_expectation_spec.rb +31 -21
- data/spec/suites/rspec_2/unit/injections/double_injection/double_injection_spec.rb +0 -12
- data/spec/suites/rspec_2/unit/integrations/rspec_spec.rb +4 -19
- data/spec/suites/rspec_2/unit/space_spec.rb +7 -4
- data/spec/suites/rspec_2/unit/spy_verification_spec.rb +1 -1
- data/spec/support/adapter.rb +1 -1
- data/spec/support/adapter_tests/rspec.rb +19 -15
- data/spec/support/project/generator.rb +0 -4
- metadata +112 -57
- data/gemfiles/ruby_18_rspec_1.gemfile +0 -14
- data/gemfiles/ruby_18_rspec_1.gemfile.lock +0 -38
- data/gemfiles/ruby_18_rspec_1_rails_2.gemfile +0 -18
- data/gemfiles/ruby_18_rspec_1_rails_2.gemfile.lock +0 -64
- data/gemfiles/ruby_19_rspec_2_rails_3.gemfile +0 -15
- data/gemfiles/ruby_19_rspec_2_rails_3.gemfile.lock +0 -123
- data/lib/rr/adapters.rb +0 -34
- data/lib/rr/adapters/rr_methods.rb +0 -142
- data/lib/rr/integrations/rspec_1.rb +0 -46
- data/lib/rr/integrations/test_unit_1.rb +0 -63
- data/lib/rr/integrations/test_unit_2.rb +0 -17
- data/lib/rr/integrations/test_unit_200.rb +0 -27
- data/lib/rr/integrations/test_unit_200_active_support.rb +0 -25
- data/lib/rr/integrations/test_unit_2_active_support.rb +0 -38
- data/lib/rr/proc_from_block.rb +0 -11
- data/spec/suites/rspec_1/helper.rb +0 -24
- data/spec/suites/rspec_1/integration/rspec_1_spec.rb +0 -93
- data/spec/suites/rspec_1/integration/test_unit_1_spec.rb +0 -102
- data/spec/suites/rspec_1/integration/test_unit_2_spec.rb +0 -109
- data/spec/suites/rspec_1/spec_helper.rb +0 -3
- data/spec/suites/rspec_1_rails_2/integration/astc_rails_2_spec.rb +0 -141
- data/spec/suites/rspec_1_rails_2/integration/rspec_1_rails_2_spec.rb +0 -132
- data/spec/suites/rspec_1_rails_2/integration/test_unit_1_rails_2_spec.rb +0 -141
- data/spec/suites/rspec_1_rails_2/integration/test_unit_2_rails_2_spec.rb +0 -148
- data/spec/suites/rspec_1_rails_2/spec_helper.rb +0 -3
- data/spec/suites/rspec_2/functional/dsl_spec.rb +0 -13
- data/spec/suites/rspec_2/functional/instance_of_spec.rb +0 -14
- data/spec/suites/rspec_2/functional/proxy_spec.rb +0 -136
- data/spec/suites/rspec_2/functional/strong_spec.rb +0 -79
- data/spec/suites/rspec_2/integration/rspec_2_spec.rb +0 -133
- data/spec/suites/rspec_2/integration/test_unit_200_spec.rb +0 -102
- data/spec/suites/rspec_2/integration/test_unit_2_spec.rb +0 -109
- data/spec/suites/rspec_2/unit/adapters/rr_methods/double_creators_spec.rb +0 -135
- data/spec/suites/rspec_2/unit/adapters/rr_methods/space_spec.rb +0 -101
- data/spec/suites/rspec_2/unit/adapters/rr_methods/wildcard_matchers_spec.rb +0 -69
- data/spec/suites/rspec_2/unit/proc_from_block_spec.rb +0 -14
- data/spec/suites/rspec_2_rails_3/integration/astc_rails_3_spec.rb +0 -141
- data/spec/suites/rspec_2_rails_3/integration/minitest_4_rails_3_spec.rb +0 -148
- data/spec/suites/rspec_2_rails_3/integration/rspec_2_rails_3_spec.rb +0 -172
- data/spec/suites/rspec_2_rails_3/integration/test_unit_200_rails_3_spec.rb +0 -141
- data/spec/suites/rspec_2_rails_3/integration/test_unit_2_rails_3_spec.rb +0 -148
- data/spec/suites/rspec_2_rails_3/spec_helper.rb +0 -3
- data/spec/suites/rspec_2_rails_4/integration/astc_rails_4_spec.rb +0 -142
- data/spec/suites/rspec_2_rails_4/integration/minitest_4_rails_4_spec.rb +0 -149
- data/spec/suites/rspec_2_rails_4/integration/rspec_2_rails_4_spec.rb +0 -173
- data/spec/suites/rspec_2_rails_4/integration/test_unit_200_rails_4_spec.rb +0 -142
- data/spec/suites/rspec_2_rails_4/integration/test_unit_2_rails_4_spec.rb +0 -149
- data/spec/suites/rspec_2_rails_4/spec_helper.rb +0 -3
@@ -0,0 +1,67 @@
|
|
1
|
+
require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
|
2
|
+
|
3
|
+
module RR
|
4
|
+
describe DSL do
|
5
|
+
include DSL
|
6
|
+
|
7
|
+
describe "#anything" do
|
8
|
+
it "returns an Anything matcher" do
|
9
|
+
expect(anything).to eq RR::WildcardMatchers::Anything.new
|
10
|
+
end
|
11
|
+
|
12
|
+
it "rr_anything returns an Anything matcher" do
|
13
|
+
expect(rr_anything).to eq RR::WildcardMatchers::Anything.new
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#is_a" do
|
18
|
+
it "returns an IsA matcher" do
|
19
|
+
expect(is_a(Integer)).to eq RR::WildcardMatchers::IsA.new(Integer)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "rr_is_a returns an IsA matcher" do
|
23
|
+
expect(rr_is_a(Integer)).to eq RR::WildcardMatchers::IsA.new(Integer)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#numeric" do
|
28
|
+
it "returns an Numeric matcher" do
|
29
|
+
expect(numeric).to eq RR::WildcardMatchers::Numeric.new
|
30
|
+
end
|
31
|
+
|
32
|
+
it "rr_numeric returns an Numeric matcher" do
|
33
|
+
expect(rr_numeric).to eq RR::WildcardMatchers::Numeric.new
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "#boolean" do
|
38
|
+
it "returns an Boolean matcher" do
|
39
|
+
expect(boolean).to eq RR::WildcardMatchers::Boolean.new
|
40
|
+
end
|
41
|
+
|
42
|
+
it "rr_boolean returns an Boolean matcher" do
|
43
|
+
expect(rr_boolean).to eq RR::WildcardMatchers::Boolean.new
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "#duck_type" do
|
48
|
+
it "returns a DuckType matcher" do
|
49
|
+
expect(duck_type(:one, :two)).to eq RR::WildcardMatchers::DuckType.new(:one, :two)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "rr_duck_type returns a DuckType matcher" do
|
53
|
+
expect(rr_duck_type(:one, :two)).to eq RR::WildcardMatchers::DuckType.new(:one, :two)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "#any_times" do
|
59
|
+
it "returns an AnyTimesMatcher" do
|
60
|
+
expect(any_times).to eq RR::TimesCalledMatchers::AnyTimesMatcher.new
|
61
|
+
end
|
62
|
+
|
63
|
+
it "rr_any_times returns an AnyTimesMatcher" do
|
64
|
+
expect(rr_any_times).to eq RR::TimesCalledMatchers::AnyTimesMatcher.new
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -21,26 +21,26 @@ module RR
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "returns false when comparing with ArgumentEqualityExpectation" do
|
24
|
-
expect(expectation).to_not eq ArgumentEqualityExpectation.new(1)
|
24
|
+
expect(expectation).to_not eq ArgumentEqualityExpectation.new([1], {})
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
describe "#exact_match?" do
|
29
29
|
it "returns false" do
|
30
|
-
expectation.should_not be_exact_match(1, 2, 3)
|
31
|
-
expectation.should_not be_exact_match(1, 2)
|
32
|
-
expectation.should_not be_exact_match(1)
|
33
|
-
expectation.should_not be_exact_match()
|
34
|
-
expectation.should_not be_exact_match("does not match")
|
30
|
+
expectation.should_not be_exact_match([1, 2, 3], {})
|
31
|
+
expectation.should_not be_exact_match([1, 2], {})
|
32
|
+
expectation.should_not be_exact_match([1], {})
|
33
|
+
expectation.should_not be_exact_match([], {})
|
34
|
+
expectation.should_not be_exact_match(["does not match"], {})
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
describe "#wildcard_match?" do
|
39
39
|
it "returns true" do
|
40
40
|
expectation = AnyArgumentExpectation.new
|
41
|
-
expect(expectation).to be_wildcard_match(1, 2, 3)
|
42
|
-
expect(expectation).to be_wildcard_match("whatever")
|
43
|
-
expect(expectation).to be_wildcard_match("whatever", "else")
|
41
|
+
expect(expectation).to be_wildcard_match([1, 2, 3], {})
|
42
|
+
expect(expectation).to be_wildcard_match(["whatever"], {})
|
43
|
+
expect(expectation).to be_wildcard_match(["whatever", "else"], {})
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
@@ -5,7 +5,7 @@ module RR
|
|
5
5
|
describe ArgumentEqualityExpectation do
|
6
6
|
attr_reader :expectation
|
7
7
|
before do
|
8
|
-
@expectation = ArgumentEqualityExpectation.new(1, 2, 3)
|
8
|
+
@expectation = ArgumentEqualityExpectation.new([1, 2, 3], {})
|
9
9
|
end
|
10
10
|
|
11
11
|
describe "#expected_arguments" do
|
@@ -16,30 +16,30 @@ module RR
|
|
16
16
|
|
17
17
|
describe "==" do
|
18
18
|
it "returns true when passed in expected_arguments are equal" do
|
19
|
-
expect(expectation).to eq ArgumentEqualityExpectation.new(1, 2, 3)
|
19
|
+
expect(expectation).to eq ArgumentEqualityExpectation.new([1, 2, 3], {})
|
20
20
|
end
|
21
21
|
|
22
22
|
it "returns false when passed in expected_arguments are not equal" do
|
23
|
-
expect(expectation).to_not eq ArgumentEqualityExpectation.new(1, 2)
|
24
|
-
expect(expectation).to_not eq ArgumentEqualityExpectation.new(1)
|
25
|
-
expect(expectation).to_not eq ArgumentEqualityExpectation.new(:something)
|
26
|
-
expect(expectation).to_not eq ArgumentEqualityExpectation.new()
|
23
|
+
expect(expectation).to_not eq ArgumentEqualityExpectation.new([1, 2], {})
|
24
|
+
expect(expectation).to_not eq ArgumentEqualityExpectation.new([1], {})
|
25
|
+
expect(expectation).to_not eq ArgumentEqualityExpectation.new([:something], {})
|
26
|
+
expect(expectation).to_not eq ArgumentEqualityExpectation.new([], {})
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
describe "#exact_match?" do
|
31
31
|
context "when all arguments exactly match" do
|
32
32
|
it "returns true" do
|
33
|
-
expect(expectation).to be_exact_match(1, 2, 3)
|
33
|
+
expect(expectation).to be_exact_match([1, 2, 3], {})
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
37
|
context "when all arguments do not exactly match" do
|
38
38
|
it "returns false" do
|
39
|
-
expectation.should_not be_exact_match(1, 2)
|
40
|
-
expectation.should_not be_exact_match(1)
|
41
|
-
expectation.should_not be_exact_match()
|
42
|
-
expectation.should_not be_exact_match("does not match")
|
39
|
+
expectation.should_not be_exact_match([1, 2], {})
|
40
|
+
expectation.should_not be_exact_match([1], {})
|
41
|
+
expectation.should_not be_exact_match([], {})
|
42
|
+
expectation.should_not be_exact_match(["does not match"], {})
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
@@ -47,26 +47,26 @@ module RR
|
|
47
47
|
describe "#wildcard_match?" do
|
48
48
|
context "when not an exact match" do
|
49
49
|
it "returns false" do
|
50
|
-
expectation = ArgumentEqualityExpectation.new(1)
|
51
|
-
expectation.should_not be_wildcard_match(1, 2, 3)
|
52
|
-
expectation.should_not be_wildcard_match("whatever")
|
53
|
-
expectation.should_not be_wildcard_match("whatever", "else")
|
50
|
+
expectation = ArgumentEqualityExpectation.new([1], {})
|
51
|
+
expectation.should_not be_wildcard_match([1, 2, 3], {})
|
52
|
+
expectation.should_not be_wildcard_match(["whatever"], {})
|
53
|
+
expectation.should_not be_wildcard_match(["whatever", "else"], {})
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
57
|
context "when an exact match" do
|
58
58
|
it "returns true" do
|
59
|
-
expectation = ArgumentEqualityExpectation.new(1, 2)
|
60
|
-
expect(expectation).to be_wildcard_match(1, 2)
|
61
|
-
expectation.should_not be_wildcard_match(1)
|
62
|
-
expectation.should_not be_wildcard_match("whatever", "else")
|
59
|
+
expectation = ArgumentEqualityExpectation.new([1, 2], {})
|
60
|
+
expect(expectation).to be_wildcard_match([1, 2], {})
|
61
|
+
expectation.should_not be_wildcard_match([1], {})
|
62
|
+
expectation.should_not be_wildcard_match(["whatever", "else"], {})
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
66
|
context "when not passed correct number of arguments" do
|
67
67
|
it "returns false" do
|
68
|
-
expectation.should_not be_wildcard_match()
|
69
|
-
expectation.should_not be_wildcard_match(Object.new, Object.new)
|
68
|
+
expectation.should_not be_wildcard_match([], {})
|
69
|
+
expectation.should_not be_wildcard_match([Object.new, Object.new], {})
|
70
70
|
end
|
71
71
|
end
|
72
72
|
end
|
@@ -7,20 +7,20 @@ module RR
|
|
7
7
|
attr_reader :expectation
|
8
8
|
|
9
9
|
before do
|
10
|
-
@expectation = ArgumentEqualityExpectation.new(boolean)
|
10
|
+
@expectation = ArgumentEqualityExpectation.new([boolean], {})
|
11
11
|
end
|
12
12
|
|
13
13
|
describe "#wildcard_match?" do
|
14
14
|
context "when passed a Boolean" do
|
15
15
|
it "returns true" do
|
16
|
-
expect(expectation).to be_wildcard_match(true)
|
17
|
-
expect(expectation).to be_wildcard_match(false)
|
16
|
+
expect(expectation).to be_wildcard_match([true], {})
|
17
|
+
expect(expectation).to be_wildcard_match([false], {})
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
context "when not passed a Boolean" do
|
22
22
|
it "returns false" do
|
23
|
-
expectation.should_not be_wildcard_match(:not_a_boolean)
|
23
|
+
expectation.should_not be_wildcard_match([:not_a_boolean], {})
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
data/spec/suites/rspec_2/unit/expectations/hash_including_argument_equality_expectation_spec.rb
CHANGED
@@ -11,70 +11,80 @@ module Expectations
|
|
11
11
|
|
12
12
|
describe "#exact_match?" do
|
13
13
|
before do
|
14
|
-
@expectation = ArgumentEqualityExpectation.new(hash_including(expected_hash))
|
14
|
+
@expectation = ArgumentEqualityExpectation.new([hash_including(expected_hash)], {})
|
15
15
|
end
|
16
16
|
|
17
17
|
it "returns true when passed in a HashIncluding matcher with the same hash" do
|
18
|
-
expect(expectation).to be_exact_match(RR::WildcardMatchers::HashIncluding.new(expected_hash)
|
18
|
+
expect(expectation).to be_exact_match([RR::WildcardMatchers::HashIncluding.new(expected_hash)],
|
19
|
+
{})
|
19
20
|
end
|
20
21
|
|
21
22
|
it "returns false when passed in a HashIncluding matcher with a different argument list" do
|
22
|
-
expectation.should_not be_exact_match(RR::WildcardMatchers::HashIncluding.new(:foo => 1)
|
23
|
+
expectation.should_not be_exact_match([RR::WildcardMatchers::HashIncluding.new(:foo => 1)],
|
24
|
+
{})
|
23
25
|
end
|
24
26
|
|
25
27
|
it "returns false otherwise" do
|
26
|
-
expectation.should_not be_exact_match("hello")
|
27
|
-
expectation.should_not be_exact_match(:hello)
|
28
|
-
expectation.should_not be_exact_match(1)
|
29
|
-
expectation.should_not be_exact_match(nil)
|
30
|
-
expectation.should_not be_exact_match(true)
|
31
|
-
expectation.should_not be_exact_match()
|
28
|
+
expectation.should_not be_exact_match(["hello"], {})
|
29
|
+
expectation.should_not be_exact_match([:hello], {})
|
30
|
+
expectation.should_not be_exact_match([1], {})
|
31
|
+
expectation.should_not be_exact_match([nil], {})
|
32
|
+
expectation.should_not be_exact_match([true], {})
|
33
|
+
expectation.should_not be_exact_match([], {})
|
32
34
|
end
|
33
35
|
end
|
34
36
|
|
35
37
|
describe "#wildcard_match?" do
|
36
38
|
before do
|
37
|
-
@expectation = ArgumentEqualityExpectation.new(hash_including(expected_hash)
|
39
|
+
@expectation = ArgumentEqualityExpectation.new([hash_including(expected_hash)],
|
40
|
+
{})
|
38
41
|
end
|
39
42
|
|
40
43
|
it "returns true when hash contains same key/values as the expectation" do
|
41
|
-
expect(expectation).to be_wildcard_match(expected_hash)
|
44
|
+
expect(expectation).to be_wildcard_match([expected_hash], {})
|
42
45
|
end
|
43
46
|
|
44
47
|
it "returns true when hash contains at least expectation's key/values" do
|
45
|
-
expect(expectation).to be_wildcard_match(expected_hash.merge(:oregon => "Salem")
|
48
|
+
expect(expectation).to be_wildcard_match([expected_hash.merge(:oregon => "Salem")],
|
49
|
+
{})
|
46
50
|
end
|
47
51
|
|
48
52
|
it "returns true when passed the same hash, even after the original is modified" do
|
49
53
|
original_expected_hash = expected_hash.clone
|
50
54
|
expected_hash[:texas] = nil
|
51
|
-
expect(expectation).to be_wildcard_match(original_expected_hash)
|
55
|
+
expect(expectation).to be_wildcard_match([original_expected_hash], {})
|
52
56
|
end
|
53
57
|
|
54
58
|
it "returns true even if one of the expectation's values is nil" do
|
55
|
-
expectation = ArgumentEqualityExpectation.new(hash_including(:foo => nil)
|
56
|
-
|
59
|
+
expectation = ArgumentEqualityExpectation.new([hash_including(:foo => nil)],
|
60
|
+
{})
|
61
|
+
expect(expectation).to be_wildcard_match([{:foo => nil}],
|
62
|
+
{})
|
57
63
|
end
|
58
64
|
|
59
65
|
it "returns false when hash matches only some required key/values" do
|
60
|
-
expectation.should_not be_wildcard_match({:texas => "Austin"}
|
66
|
+
expectation.should_not be_wildcard_match([{:texas => "Austin"}],
|
67
|
+
{})
|
61
68
|
end
|
62
69
|
|
63
70
|
it "returns false when hash matches all the keys but not all the values" do
|
64
|
-
expectation.should_not be_wildcard_match({:texas => "Austin", :maine => "Portland"}
|
71
|
+
expectation.should_not be_wildcard_match([{:texas => "Austin", :maine => "Portland"}],
|
72
|
+
{})
|
65
73
|
end
|
66
74
|
|
67
75
|
it "returns false when passed a hash that matches all values but not all keys" do
|
68
|
-
expectation.should_not be_wildcard_match({:texas => "Austin", :georgia => "Augusta"}
|
76
|
+
expectation.should_not be_wildcard_match([{:texas => "Austin", :georgia => "Augusta"}],
|
77
|
+
{})
|
69
78
|
end
|
70
79
|
|
71
80
|
it "returns true when an exact match" do
|
72
|
-
expect(expectation).to be_wildcard_match(hash_including(expected_hash)
|
81
|
+
expect(expectation).to be_wildcard_match([hash_including(expected_hash)],
|
82
|
+
{})
|
73
83
|
end
|
74
84
|
|
75
85
|
it "returns false when not passed correct number of arguments" do
|
76
|
-
expectation.should_not be_wildcard_match()
|
77
|
-
expectation.should_not be_wildcard_match(:a, :b)
|
86
|
+
expectation.should_not be_wildcard_match([], {})
|
87
|
+
expectation.should_not be_wildcard_match([:a, :b], {})
|
78
88
|
end
|
79
89
|
end
|
80
90
|
end
|
@@ -231,12 +231,6 @@ module RR
|
|
231
231
|
end
|
232
232
|
|
233
233
|
describe "being called" do
|
234
|
-
it "defines __rr__original_{method_name} to be the lazily created method" do
|
235
|
-
subject.foobar
|
236
|
-
expect((!!subject.methods.detect {|method| method.to_sym == :__rr__original_foobar})).to be_true
|
237
|
-
expect(subject.__rr__original_foobar).to eq :original_foobar
|
238
|
-
end
|
239
|
-
|
240
234
|
it "calls the lazily created method and returns the injected method return value" do
|
241
235
|
original_return_value = nil
|
242
236
|
stub.proxy(subject).foobar {|arg| original_return_value = arg; :new_foobar}
|
@@ -383,12 +377,6 @@ module RR
|
|
383
377
|
end
|
384
378
|
|
385
379
|
describe "being called" do
|
386
|
-
it "defines __rr__original_{method_name} to be the lazily created method" do
|
387
|
-
subject.foobar
|
388
|
-
expect((!!subject.methods.detect {|method| method.to_sym == :__rr__original_foobar})).to be_true
|
389
|
-
expect(subject.__rr__original_foobar).to eq :original_foobar
|
390
|
-
end
|
391
|
-
|
392
380
|
it "calls the lazily created method and returns the injected method return value" do
|
393
381
|
original_return_value = nil
|
394
382
|
stub.proxy(subject).foobar {|arg| original_return_value = arg; :new_foobar}
|
@@ -2,7 +2,7 @@ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
|
|
2
2
|
|
3
3
|
module RR
|
4
4
|
module Integrations
|
5
|
-
describe
|
5
|
+
describe RSpec2 do
|
6
6
|
attr_reader :fixture, :method_name
|
7
7
|
|
8
8
|
describe "#setup_mocks_for_rspec" do
|
@@ -10,7 +10,7 @@ module RR
|
|
10
10
|
|
11
11
|
before do
|
12
12
|
@fixture = Object.new
|
13
|
-
fixture.extend
|
13
|
+
fixture.extend RSpec2::Mixin
|
14
14
|
@method_name = :foobar
|
15
15
|
end
|
16
16
|
|
@@ -28,7 +28,7 @@ module RR
|
|
28
28
|
|
29
29
|
before do
|
30
30
|
@fixture = Object.new
|
31
|
-
fixture.extend
|
31
|
+
fixture.extend RSpec2::Mixin
|
32
32
|
@method_name = :foobar
|
33
33
|
end
|
34
34
|
|
@@ -47,7 +47,7 @@ module RR
|
|
47
47
|
|
48
48
|
before do
|
49
49
|
@fixture = Object.new
|
50
|
-
fixture.extend
|
50
|
+
fixture.extend RSpec2::Mixin
|
51
51
|
@method_name = :foobar
|
52
52
|
end
|
53
53
|
|
@@ -65,21 +65,6 @@ module RR
|
|
65
65
|
expect(RR.trim_backtrace).to eq false
|
66
66
|
end
|
67
67
|
end
|
68
|
-
|
69
|
-
describe '#have_received' do
|
70
|
-
it "creates an invocation matcher with a method name" do
|
71
|
-
method = :test
|
72
|
-
matcher = 'fake'
|
73
|
-
mock(RR::Integrations::RSpec::InvocationMatcher).new(method) { matcher }
|
74
|
-
expect(have_received(method)).to eq matcher
|
75
|
-
end
|
76
|
-
|
77
|
-
it "creates an invocation matcher without a method name" do
|
78
|
-
matcher = 'fake'
|
79
|
-
mock(RR::Integrations::RSpec::InvocationMatcher).new(nil) { matcher }
|
80
|
-
expect(have_received).to eq matcher
|
81
|
-
end
|
82
|
-
end
|
83
68
|
end
|
84
69
|
end
|
85
70
|
end
|
@@ -11,9 +11,12 @@ module RR
|
|
11
11
|
describe "#record_call" do
|
12
12
|
it "should add a call to the list" do
|
13
13
|
object = Object.new
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
method_name = :to_s
|
15
|
+
arguments = []
|
16
|
+
keyword_arguments = {}
|
17
|
+
space.record_call(object, method_name, arguments, keyword_arguments, lambda {})
|
18
|
+
expect(space.recorded_calls[0]).to eq \
|
19
|
+
RR::RecordedCall.new(object, method_name, arguments, keyword_arguments, lambda {})
|
17
20
|
end
|
18
21
|
end
|
19
22
|
|
@@ -200,7 +203,7 @@ module RR
|
|
200
203
|
|
201
204
|
it "should clear the #recorded_calls" do
|
202
205
|
object = Object.new
|
203
|
-
space.record_call(object, :to_s, [], nil)
|
206
|
+
space.record_call(object, :to_s, [], {}, nil)
|
204
207
|
|
205
208
|
space.reset
|
206
209
|
expect(space.recorded_calls).to eq RR::RecordedCalls.new([])
|