flexmock 0.8.11 → 0.9.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.
Files changed (51) hide show
  1. data/README.rdoc +2 -2
  2. data/Rakefile +23 -65
  3. data/TAGS +689 -691
  4. data/doc/releases/flexmock-0.9.0.rdoc +89 -0
  5. data/lib/flexmock.rb +1 -1
  6. data/lib/flexmock/argument_matchers.rb +5 -5
  7. data/lib/flexmock/argument_types.rb +1 -1
  8. data/lib/flexmock/base.rb +1 -1
  9. data/lib/flexmock/core.rb +5 -5
  10. data/lib/flexmock/core_class_methods.rb +6 -6
  11. data/lib/flexmock/default_framework_adapter.rb +2 -2
  12. data/lib/flexmock/deprecated_methods.rb +1 -1
  13. data/lib/flexmock/errors.rb +1 -1
  14. data/lib/flexmock/expectation.rb +12 -12
  15. data/lib/flexmock/expectation_director.rb +1 -1
  16. data/lib/flexmock/mock_container.rb +12 -2
  17. data/lib/flexmock/noop.rb +2 -2
  18. data/lib/flexmock/ordering.rb +1 -1
  19. data/lib/flexmock/partial_mock.rb +10 -3
  20. data/lib/flexmock/rails.rb +1 -1
  21. data/lib/flexmock/recorder.rb +1 -1
  22. data/lib/flexmock/rspec.rb +1 -1
  23. data/lib/flexmock/test_unit.rb +2 -2
  24. data/lib/flexmock/test_unit_integration.rb +5 -5
  25. data/lib/flexmock/undefined.rb +8 -4
  26. data/lib/flexmock/validators.rb +2 -2
  27. data/lib/flexmock/version.rb +11 -0
  28. data/test/{test_aliasing.rb → aliasing_test.rb} +7 -8
  29. data/test/{test_container_methods.rb → container_methods_test.rb} +21 -22
  30. data/test/{test_default_framework_adapter.rb → default_framework_adapter_test.rb} +8 -9
  31. data/test/{test_demeter_mocking.rb → demeter_mocking_test.rb} +1 -4
  32. data/test/{test_deprecated_methods.rb → deprecated_methods_test.rb} +11 -13
  33. data/test/{test_examples_from_readme.rb → examples_from_readme_test.rb} +5 -6
  34. data/test/{test_extended_should_receive.rb → extended_should_receive_test.rb} +11 -12
  35. data/test/{test_flexmodel.rb → flexmodel_test.rb} +1 -2
  36. data/test/{test_naming.rb → naming_test.rb} +5 -6
  37. data/test/{test_new_instances.rb → new_instances_test.rb} +36 -28
  38. data/test/{test_partial_mock.rb → partial_mock_test.rb} +20 -18
  39. data/test/{test_rails_view_stub.rb → rails_view_stub_test.rb} +3 -3
  40. data/test/{test_record_mode.rb → record_mode_test.rb} +2 -5
  41. data/test/rspec_integration/integration_spec.rb +14 -8
  42. data/test/{test_samples.rb → samples_test.rb} +13 -14
  43. data/test/{test_should_ignore_missing.rb → should_ignore_missing_test.rb} +4 -6
  44. data/test/{test_should_receive.rb → should_receive_test.rb} +39 -42
  45. data/test/test_setup.rb +30 -0
  46. data/test/test_unit_integration/{test_auto_test_unit.rb → auto_test_unit_test.rb} +4 -4
  47. data/test/tu_integration_test.rb +99 -0
  48. data/test/{test_undefined.rb → undefined_test.rb} +2 -3
  49. metadata +31 -39
  50. data/test/asserts.rb +0 -34
  51. data/test/test_tu_integration.rb +0 -94
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #---
4
- # Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org).
4
+ # Copyright 2003-2011 by Jim Weirich (jim@weirichhouse.org).
5
5
  # All rights reserved.
6
6
  #
7
7
  # Permission is granted for use, copying, modification, distribution,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #---
4
- # Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org).
4
+ # Copyright 2003-2011 by Jim Weirich (jim@weirichhouse.org).
5
5
  # All rights reserved.
6
6
 
7
7
  # Permission is granted for use, copying, modification, distribution,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #---
4
- # Copyright 2003, 2004, 2005, 2006, 2007, 2010 by Jim Weirich (jim.weirich@gmail.com).
4
+ # Copyright 2003-2011 by Jim Weirich (jim.weirich@gmail.com).
5
5
  # All rights reserved.
6
6
 
7
7
  # Permission is granted for use, copying, modification, distribution,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #---
4
- # Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org).
4
+ # Copyright 2003-2011 by Jim Weirich (jim@weirichhouse.org).
5
5
  # All rights reserved.
6
6
 
7
7
  # Permission is granted for use, copying, modification, distribution,
@@ -29,4 +29,4 @@ module Test
29
29
 
30
30
  end
31
31
  end
32
- end
32
+ end
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #---
4
- # Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org).
4
+ # Copyright 2003-2011 by Jim Weirich (jim@weirichhouse.org).
5
5
  # All rights reserved.
6
6
 
7
7
  # Permission is granted for use, copying, modification, distribution,
@@ -13,13 +13,13 @@ require 'test/unit'
13
13
  require 'flexmock/base'
14
14
 
15
15
  class FlexMock
16
-
16
+
17
17
  ####################################################################
18
18
  # Test::Unit::TestCase Integration.
19
19
  #
20
20
  # Include this module in any TestCase class in a Test::Unit test
21
21
  # suite to get integration with FlexMock. When this module is
22
- # included, the mock container methods (e.g. flexmock(), flexstub())
22
+ # included, the mock container methods (e.g. flexmock(), flexstub())
23
23
  # will be available.
24
24
  #
25
25
  # <b>Note:</b> If you define a +teardown+ method in the test case,
@@ -38,14 +38,14 @@ class FlexMock
38
38
  end
39
39
 
40
40
  end
41
-
41
+
42
42
  ####################################################################
43
43
  # Adapter for adapting FlexMock to the Test::Unit framework.
44
44
  #
45
45
  class TestUnitFrameworkAdapter
46
46
  include Test::Unit::Assertions
47
47
  def assertion_failed_error
48
- Test::Unit::AssertionFailedError
48
+ defined?(Test::Unit::AssertionFailedError) ? Test::Unit::AssertionFailedError : MiniTest::Assertion
49
49
  end
50
50
  end
51
51
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #---
4
- # Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org).
4
+ # Copyright 2003-2011 by Jim Weirich (jim@weirichhouse.org).
5
5
  # All rights reserved.
6
6
 
7
7
  # Permission is granted for use, copying, modification, distribution,
@@ -30,7 +30,11 @@ class FlexMock
30
30
  def clone
31
31
  self
32
32
  end
33
-
33
+
34
+ def <=>(other)
35
+ self
36
+ end
37
+
34
38
  def coerce(other)
35
39
  [FlexMock.undefined, FlexMock.undefined]
36
40
  end
@@ -43,8 +47,8 @@ class FlexMock
43
47
  def self.undefined
44
48
  @undefined
45
49
  end
46
-
50
+
47
51
  class << Undefined
48
52
  private :new
49
53
  end
50
- end
54
+ end
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #---
4
- # Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org).
4
+ # Copyright 2003-2011 by Jim Weirich (jim@weirichhouse.org).
5
5
  # All rights reserved.
6
6
 
7
7
  # Permission is granted for use, copying, modification, distribution,
@@ -73,5 +73,5 @@ class FlexMock
73
73
  "Method '#{@exp}' should be called at most #{@limit} times,\n" +
74
74
  "only called #{n} times") { n <= @limit }
75
75
  end
76
- end
76
+ end
77
77
  end
@@ -0,0 +1,11 @@
1
+ class FlexMock
2
+ module Version
3
+ NUMBERS = [
4
+ MAJOR = 0,
5
+ MINOR = 9,
6
+ BUILD = 0,
7
+ ]
8
+ end
9
+
10
+ VERSION = Version::NUMBERS.join('.')
11
+ end
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'test/unit'
4
- require 'flexmock'
3
+ require 'test/test_setup'
5
4
 
6
5
  class FlexMock
7
6
  module StubsAndExpects
@@ -36,21 +35,21 @@ class AliasingTest < Test::Unit::TestCase
36
35
  assert_equal :woof!, m.pat
37
36
  assert_equal :woof!, m.pat
38
37
  end
39
-
38
+
40
39
  def test_once_mocking
41
- m = mock("a cute dog").expects(:pat).and_return(:woof!).mock
40
+ mock("a cute dog").expects(:pat).and_return(:woof!).mock
42
41
  end
43
-
42
+
44
43
  def test_twice_mocking
45
44
  m = mock("a cute dog").expects(:pat).and_return(:woof!).twice.mock
46
- assert_raises(Test::Unit::AssertionFailedError) { m.flexmock_verify }
45
+ assert_raises(assertion_failed_error) { m.flexmock_verify }
47
46
  end
48
-
47
+
49
48
  def test_stubbing
50
49
  m = stub("a cute dog").expects(:pat).and_return(:woof!).mock
51
50
  assert_equal :woof!, m.pat
52
51
  end
53
-
52
+
54
53
  def test_partial
55
54
  obj = Object.new
56
55
  stub(obj).stubs(:wag).and_return(:tail)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #---
4
- # Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org).
4
+ # Copyright 2003-2011 by Jim Weirich (jim@weirichhouse.org).
5
5
  # All rights reserved.
6
6
 
7
7
  # Permission is granted for use, copying, modification, distribution,
@@ -9,8 +9,7 @@
9
9
  # above copyright notice is included.
10
10
  #+++
11
11
 
12
- require "test/unit"
13
- require "flexmock"
12
+ require "test/test_setup"
14
13
 
15
14
  # These tests exercise the interface used to define mocks
16
15
  class TestFlexmockContainerMethods < Test::Unit::TestCase
@@ -21,36 +20,36 @@ class TestFlexmockContainerMethods < Test::Unit::TestCase
21
20
  mock.should_receive(:hi).once.and_return(:lo)
22
21
  assert_equal :lo, mock.hi
23
22
  end
24
-
23
+
25
24
  def test_mock_with_name
26
25
  mock = flexmock("Danny")
27
26
  mock.should_receive(:xxx).with(1)
28
- ex = assert_raise(Test::Unit::AssertionFailedError) { mock.xxx }
27
+ ex = assert_raise(assertion_failed_error) { mock.xxx }
29
28
  assert_match(/Danny/, ex.message)
30
29
  end
31
-
30
+
32
31
  def test_mock_with_symbol_name
33
32
  mock = flexmock(:Danny)
34
33
  mock.should_receive(:xxx).with(1)
35
- ex = assert_raise(Test::Unit::AssertionFailedError) { mock.xxx }
34
+ ex = assert_raise(assertion_failed_error) { mock.xxx }
36
35
  assert_match(/Danny/, ex.message)
37
36
  end
38
-
37
+
39
38
  def test_mock_with_hash
40
39
  mock = flexmock(:hi => :lo, :good => :bye)
41
40
  assert_equal :lo, mock.hi
42
41
  assert_equal :bye, mock.good
43
42
  end
44
-
43
+
45
44
  def test_mock_with_name_and_hash
46
45
  mock = flexmock("Danny", :hi => :lo, :good => :bye)
47
46
  mock.should_receive(:xxx).with(1)
48
47
  assert_equal :lo, mock.hi
49
48
  assert_equal :bye, mock.good
50
- ex = assert_raise(Test::Unit::AssertionFailedError) { mock.xxx }
49
+ ex = assert_raise(assertion_failed_error) { mock.xxx }
51
50
  assert_match(/Danny/, ex.message)
52
51
  end
53
-
52
+
54
53
  def test_mock_with_name_hash_and_block
55
54
  mock = flexmock("Danny", :hi => :lo, :good => :bye) do |m|
56
55
  m.should_receive(:one).and_return(1)
@@ -58,25 +57,25 @@ class TestFlexmockContainerMethods < Test::Unit::TestCase
58
57
  assert_equal 1, mock.one
59
58
  assert_equal :lo, mock.hi
60
59
  end
61
-
60
+
62
61
  def test_basic_stub
63
62
  fido = Object.new
64
63
  mock = flexmock(fido)
65
64
  mock.should_receive(:wag).and_return(:happy)
66
65
  assert_equal :happy, fido.wag
67
66
  end
68
-
67
+
69
68
  def test_basic_stub_with_name
70
69
  fido = Object.new
71
70
  mock = flexmock(fido, "Danny")
72
71
  mock.should_receive(:xxx).with(1).and_return(:happy)
73
- ex = assert_raise(Test::Unit::AssertionFailedError) { fido.xxx }
72
+ ex = assert_raise(assertion_failed_error) { fido.xxx }
74
73
  assert_match(/Danny/, ex.message)
75
74
  end
76
75
 
77
76
  def test_stub_with_quick_definitions
78
77
  fido = Object.new
79
- mock = flexmock(fido, :wag => :happy)
78
+ flexmock(fido, :wag => :happy)
80
79
  assert_equal :happy, fido.wag
81
80
  end
82
81
 
@@ -84,31 +83,31 @@ class TestFlexmockContainerMethods < Test::Unit::TestCase
84
83
  fido = Object.new
85
84
  mock = flexmock(fido, "Danny", :wag => :happy)
86
85
  mock.should_receive(:xxx).with(1).and_return(:happy)
87
- ex = assert_raise(Test::Unit::AssertionFailedError) { fido.xxx }
86
+ ex = assert_raise(assertion_failed_error) { fido.xxx }
88
87
  assert_match(/Danny/, ex.message)
89
88
  assert_equal :happy, fido.wag
90
89
  end
91
-
90
+
92
91
  def test_stubs_are_auto_verified
93
92
  fido = Object.new
94
93
  mock = flexmock(fido)
95
94
  mock.should_receive(:hi).once
96
- ex = assert_raise(Test::Unit::AssertionFailedError) { flexmock_verify }
95
+ assert_raise(assertion_failed_error) { flexmock_verify }
97
96
  end
98
-
97
+
99
98
  def test_stubbing_a_string
100
99
  s = "hello"
101
- mock = flexmock(:base, s, :length => 2)
100
+ flexmock(:base, s, :length => 2)
102
101
  assert_equal 2, s.length
103
102
  end
104
-
103
+
105
104
  def test_multiple_stubs_work_with_same_partial_mock_proxy
106
105
  obj = Object.new
107
106
  mock1 = flexmock(obj)
108
107
  mock2 = flexmock(obj)
109
108
  assert_equal mock1, mock2
110
109
  end
111
-
110
+
112
111
  def test_multiple_stubs_layer_behavior
113
112
  obj = Object.new
114
113
  flexmock(obj, :hi => :lo)
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #---
4
- # Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org).
4
+ # Copyright 2003-2011 by Jim Weirich (jim@weirichhouse.org).
5
5
  # All rights reserved.
6
6
 
7
7
  # Permission is granted for use, copying, modification, distribution,
@@ -9,16 +9,15 @@
9
9
  # above copyright notice is included.
10
10
  #+++
11
11
 
12
- require "test/unit"
13
- require "flexmock"
12
+ require "test/test_setup"
14
13
 
15
14
  class TestFlexmockDefaultFrameworkAdapter < Test::Unit::TestCase
16
15
  def setup
17
16
  @adapter = FlexMock::DefaultFrameworkAdapter.new
18
17
  end
19
18
 
20
- def test_assert_block_raises_exception
21
- ex = assert_raise(FlexMock::DefaultFrameworkAdapter::AssertionFailedError) {
19
+ def test_assert_block_raises_exception
20
+ assert_raise(FlexMock::DefaultFrameworkAdapter::AssertionFailedError) {
22
21
  @adapter.assert_block("failure message") { false }
23
22
  }
24
23
  end
@@ -26,14 +25,14 @@ class TestFlexmockDefaultFrameworkAdapter < Test::Unit::TestCase
26
25
  def test_assert_block_doesnt_raise_exception
27
26
  @adapter.assert_block("failure message") { true }
28
27
  end
29
-
28
+
30
29
  def test_assert_equal_doesnt_raise_exception
31
30
  @adapter.assert_equal("a", "a", "no message")
32
31
  end
33
-
32
+
34
33
  def test_assert_equal_can_fail
35
- ex = assert_raise(FlexMock::DefaultFrameworkAdapter::AssertionFailedError) {
34
+ assert_raise(FlexMock::DefaultFrameworkAdapter::AssertionFailedError) {
36
35
  @adapter.assert_equal("a", "b", "a should not equal b")
37
36
  }
38
37
  end
39
- end
38
+ end
@@ -1,12 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'test/unit'
4
- require 'flexmock'
5
- require 'test/asserts'
3
+ require 'test/test_setup'
6
4
 
7
5
  class TestDemeterMocking < Test::Unit::TestCase
8
6
  include FlexMock::TestCase
9
- include FlexMock::FailureAssertion
10
7
 
11
8
  def test_demeter_mocking
12
9
  m = flexmock("A")
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  #---
4
- # Copyright 2003, 2004, 2005, 2006, 2007 by Jim Weirich (jim@weirichhouse.org).
4
+ # Copyright 2003-2011 by Jim Weirich (jim@weirichhouse.org).
5
5
  # All rights reserved.
6
6
 
7
7
  # Permission is granted for use, copying, modification, distribution,
@@ -9,10 +9,8 @@
9
9
  # above copyright notice is included.
10
10
  #+++
11
11
 
12
- require 'test/unit'
13
- require 'flexmock'
12
+ require 'test/test_setup'
14
13
  require 'flexmock/deprecated_methods'
15
- require 'test/redirect_error'
16
14
 
17
15
  class TestFlexMock < Test::Unit::TestCase
18
16
  include FlexMock::TestCase
@@ -79,7 +77,7 @@ class TestFlexMock < Test::Unit::TestCase
79
77
  @mock.blip
80
78
  begin
81
79
  @mock.flexmock_verify
82
- rescue Test::Unit::AssertionFailedError => err
80
+ rescue assertion_failed_error => err
83
81
  end
84
82
  assert_not_nil err
85
83
  end
@@ -94,7 +92,7 @@ class TestFlexMock < Test::Unit::TestCase
94
92
  end
95
93
 
96
94
  def test_zero_counts
97
- assert_raises(Test::Unit::AssertionFailedError) do
95
+ assert_raises(assertion_failed_error) do
98
96
  FlexMock.use { |m|
99
97
  s { m.mock_handle(:blip, 0) }
100
98
  m.blip
@@ -103,7 +101,7 @@ class TestFlexMock < Test::Unit::TestCase
103
101
  end
104
102
 
105
103
  def test_file_io_with_use
106
- file = FlexMock.use do |m|
104
+ FlexMock.use do |m|
107
105
  filedata = ["line 1", "line 2"]
108
106
  s { m.mock_handle(:gets, 3) { filedata.shift } }
109
107
  assert_equal 2, count_lines(m)
@@ -112,14 +110,14 @@ class TestFlexMock < Test::Unit::TestCase
112
110
 
113
111
  def count_lines(stream)
114
112
  result = 0
115
- while line = stream.gets
113
+ while stream.gets
116
114
  result += 1
117
115
  end
118
- result
116
+ result
119
117
  end
120
118
 
121
119
  def test_use
122
- assert_raises(Test::Unit::AssertionFailedError) {
120
+ assert_raises(assertion_failed_error) {
123
121
  FlexMock.use do |m|
124
122
  s { m.mock_handle(:blip, 2) }
125
123
  m.blip
@@ -145,7 +143,7 @@ class TestFlexMock < Test::Unit::TestCase
145
143
  assert_equal 9, @mock.get
146
144
  assert_equal 16, @mock.get
147
145
  end
148
-
146
+
149
147
  def test_respond_to_returns_false_for_non_handled_methods
150
148
  assert(!@mock.respond_to?(:blah), "should not respond to blah")
151
149
  end
@@ -222,6 +220,6 @@ class TestAnyInstance < Test::Unit::TestCase
222
220
  end
223
221
  end
224
222
  m = Dog.new
225
- assert_equal :whimper, m.bark
223
+ assert_equal :whimper, m.bark
226
224
  end
227
- end
225
+ end