~ubuntu-branches/ubuntu/oneiric/puppet/oneiric-security

« back to all changes in this revision

Viewing changes to vendor/gems/mocha-0.5.6/test/integration/stubba_integration_test.rb

  • Committer: Bazaar Package Importer
  • Author(s): Micah Anderson
  • Date: 2008-07-26 15:43:45 UTC
  • mto: (3.1.1 lenny) (1.3.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 16.
  • Revision ID: james.westby@ubuntu.com-20080726154345-1fmgo76b4l72ulvc
ImportĀ upstreamĀ versionĀ 0.24.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
require File.join(File.dirname(__FILE__), "..", "test_helper")
 
2
 
 
3
require 'mocha/object'
 
4
require 'mocha/test_case_adapter'
 
5
require 'mocha/standalone'
 
6
 
 
7
class StubbaIntegrationTest < Test::Unit::TestCase
 
8
  
 
9
  class DontMessWithMe
 
10
    def self.my_class_method
 
11
      :original_return_value
 
12
    end
 
13
    def my_instance_method
 
14
      :original_return_value
 
15
    end
 
16
  end
 
17
  
 
18
  def test_should_stub_class_method_within_test
 
19
    test = build_test do
 
20
      DontMessWithMe.expects(:my_class_method).returns(:new_return_value)
 
21
      assert_equal :new_return_value, DontMessWithMe.my_class_method
 
22
    end
 
23
 
 
24
    test_result = Test::Unit::TestResult.new
 
25
    test.run(test_result) {}
 
26
    assert test_result.passed?
 
27
  end
 
28
 
 
29
  def test_should_leave_stubbed_class_method_unchanged_after_test
 
30
    test = build_test do
 
31
      DontMessWithMe.expects(:my_class_method).returns(:new_return_value)
 
32
    end
 
33
 
 
34
    test.run(Test::Unit::TestResult.new) {}
 
35
    assert_equal :original_return_value, DontMessWithMe.my_class_method
 
36
  end
 
37
  
 
38
  def test_should_reset_class_expectations_after_test
 
39
    test = build_test do
 
40
      DontMessWithMe.expects(:my_class_method)
 
41
    end
 
42
    
 
43
    test.run(Test::Unit::TestResult.new) {}
 
44
    assert_equal 0, DontMessWithMe.mocha.expectations.length
 
45
  end  
 
46
 
 
47
  def test_should_stub_instance_method_within_test
 
48
    instance = DontMessWithMe.new
 
49
    test = build_test do
 
50
      instance.expects(:my_instance_method).returns(:new_return_value)
 
51
      assert_equal :new_return_value, instance.my_instance_method
 
52
    end
 
53
    test_result = Test::Unit::TestResult.new
 
54
    test.run(test_result) {}
 
55
    assert test_result.passed?
 
56
  end
 
57
  
 
58
  def test_should_leave_stubbed_instance_method_unchanged_after_test
 
59
    instance = DontMessWithMe.new
 
60
    test = build_test do
 
61
      instance.expects(:my_instance_method).returns(:new_return_value)
 
62
    end
 
63
 
 
64
    test.run(Test::Unit::TestResult.new) {}
 
65
    assert_equal :original_return_value, instance.my_instance_method
 
66
  end
 
67
  
 
68
  def test_should_reset_instance_expectations_after_test
 
69
    instance = DontMessWithMe.new
 
70
    test = build_test do
 
71
      instance.expects(:my_instance_method).returns(:new_return_value)
 
72
    end
 
73
    
 
74
    test.run(Test::Unit::TestResult.new) {}
 
75
    assert_equal 0, instance.mocha.expectations.length
 
76
  end  
 
77
 
 
78
  private
 
79
 
 
80
  def build_test(&block)
 
81
    test_class = Class.new(Test::Unit::TestCase) do
 
82
      include Mocha::Standalone
 
83
      include Mocha::TestCaseAdapter
 
84
      define_method(:test_me, &block)
 
85
    end
 
86
    test_class.new(:test_me)
 
87
  end
 
88
 
 
89
end
 
 
b'\\ No newline at end of file'