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

« back to all changes in this revision

Viewing changes to vendor/gems/mocha-0.5.6/test/unit/parameters_matcher_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
require 'mocha/parameters_matcher'
 
3
 
 
4
class ParametersMatcherTest < Test::Unit::TestCase
 
5
  
 
6
  include Mocha
 
7
 
 
8
  def test_should_match_any_actual_parameters_if_no_expected_parameters_specified
 
9
    parameters_matcher = ParametersMatcher.new
 
10
    assert parameters_matcher.match?(actual_parameters = [1, 2, 3])
 
11
  end
 
12
 
 
13
  def test_should_match_if_actual_parameters_are_same_as_expected_parameters
 
14
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, 6])
 
15
    assert parameters_matcher.match?(actual_parameters = [4, 5, 6])
 
16
  end
 
17
  
 
18
  def test_should_not_match_if_actual_parameters_are_different_from_expected_parameters
 
19
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, 6])
 
20
    assert !parameters_matcher.match?(actual_parameters = [1, 2, 3])
 
21
  end
 
22
  
 
23
  def test_should_not_match_if_there_are_less_actual_parameters_than_expected_parameters
 
24
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, 6])
 
25
    assert !parameters_matcher.match?(actual_parameters = [4, 5])
 
26
  end
 
27
  
 
28
  def test_should_not_match_if_there_are_more_actual_parameters_than_expected_parameters
 
29
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5])
 
30
    assert !parameters_matcher.match?(actual_parameters = [4, 5, 6])
 
31
  end
 
32
  
 
33
  def test_should_not_match_if_not_all_required_parameters_are_supplied
 
34
    optionals = ParameterMatchers::Optionally.new(6, 7)
 
35
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
 
36
    assert !parameters_matcher.match?(actual_parameters = [4])
 
37
  end
 
38
  
 
39
  def test_should_match_if_all_required_parameters_match_and_no_optional_parameters_are_supplied
 
40
    optionals = ParameterMatchers::Optionally.new(6, 7)
 
41
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
 
42
    assert parameters_matcher.match?(actual_parameters = [4, 5])
 
43
  end
 
44
  
 
45
  def test_should_match_if_all_required_and_optional_parameters_match_and_some_optional_parameters_are_supplied
 
46
    optionals = ParameterMatchers::Optionally.new(6, 7)
 
47
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
 
48
    assert parameters_matcher.match?(actual_parameters = [4, 5, 6])
 
49
  end
 
50
  
 
51
  def test_should_match_if_all_required_and_optional_parameters_match_and_all_optional_parameters_are_supplied
 
52
    optionals = ParameterMatchers::Optionally.new(6, 7)
 
53
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
 
54
    assert parameters_matcher.match?(actual_parameters = [4, 5, 6, 7])
 
55
  end
 
56
  
 
57
  def test_should_not_match_if_all_required_and_optional_parameters_match_but_too_many_optional_parameters_are_supplied
 
58
    optionals = ParameterMatchers::Optionally.new(6, 7)
 
59
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
 
60
    assert !parameters_matcher.match?(actual_parameters = [4, 5, 6, 7, 8])
 
61
  end
 
62
  
 
63
  def test_should_not_match_if_all_required_parameters_match_but_some_optional_parameters_do_not_match
 
64
    optionals = ParameterMatchers::Optionally.new(6, 7)
 
65
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
 
66
    assert !parameters_matcher.match?(actual_parameters = [4, 5, 6, 0])
 
67
  end
 
68
 
 
69
  def test_should_not_match_if_some_required_parameters_do_not_match_although_all_optional_parameters_do_match
 
70
    optionals = ParameterMatchers::Optionally.new(6, 7)
 
71
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
 
72
    assert !parameters_matcher.match?(actual_parameters = [4, 0, 6])
 
73
  end
 
74
 
 
75
  def test_should_not_match_if_all_required_parameters_match_but_no_optional_parameters_match
 
76
    optionals = ParameterMatchers::Optionally.new(6, 7)
 
77
    parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
 
78
    assert !parameters_matcher.match?(actual_parameters = [4, 5, 0, 0])
 
79
  end
 
80
 
 
81
  def test_should_match_if_actual_parameters_satisfy_matching_block
 
82
    parameters_matcher = ParametersMatcher.new { |x, y| x + y == 3 }
 
83
    assert parameters_matcher.match?(actual_parameters = [1, 2])
 
84
  end
 
85
 
 
86
  def test_should_not_match_if_actual_parameters_do_not_satisfy_matching_block
 
87
    parameters_matcher = ParametersMatcher.new { |x, y| x + y == 3 }
 
88
    assert !parameters_matcher.match?(actual_parameters = [2, 3])
 
89
  end
 
90
  
 
91
  def test_should_remove_outer_array_braces
 
92
    params = [1, 2, [3, 4]]
 
93
    parameters_matcher = ParametersMatcher.new(params)
 
94
    assert_equal '(1, 2, [3, 4])', parameters_matcher.mocha_inspect
 
95
  end
 
96
  
 
97
  def test_should_display_numeric_arguments_as_is
 
98
    params = [1, 2, 3]
 
99
    parameters_matcher = ParametersMatcher.new(params)
 
100
    assert_equal '(1, 2, 3)', parameters_matcher.mocha_inspect
 
101
  end
 
102
  
 
103
  def test_should_remove_curly_braces_if_hash_is_only_argument
 
104
    params = [{:a => 1, :z => 2}]
 
105
    parameters_matcher = ParametersMatcher.new(params)
 
106
    assert_nil parameters_matcher.mocha_inspect.index('{')
 
107
    assert_nil parameters_matcher.mocha_inspect.index('}')
 
108
  end
 
109
  
 
110
  def test_should_not_remove_curly_braces_if_hash_is_not_the_only_argument
 
111
    params = [1, {:a => 1}]
 
112
    parameters_matcher = ParametersMatcher.new(params)
 
113
    assert_equal '(1, {:a => 1})', parameters_matcher.mocha_inspect
 
114
  end
 
115
  
 
116
  def test_should_indicate_that_matcher_will_match_any_actual_parameters
 
117
    parameters_matcher = ParametersMatcher.new
 
118
    assert_equal '(any_parameters)', parameters_matcher.mocha_inspect
 
119
  end
 
120
 
 
121
end
 
 
b'\\ No newline at end of file'