PageRenderTime 43ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/vendor/gems/mocha-0.9.3/test/unit/parameters_matcher_test.rb

http://github.com/stevenbristol/lovd-by-less
Ruby | 121 lines | 98 code | 23 blank | 0 comment | 2 complexity | 3e3a6bbaec617ac56ecc4c009b277f5e MD5 | raw file
Possible License(s): MIT
  1. require File.join(File.dirname(__FILE__), "..", "test_helper")
  2. require 'mocha/parameters_matcher'
  3. class ParametersMatcherTest < Test::Unit::TestCase
  4. include Mocha
  5. def test_should_match_any_actual_parameters_if_no_expected_parameters_specified
  6. parameters_matcher = ParametersMatcher.new
  7. assert parameters_matcher.match?(actual_parameters = [1, 2, 3])
  8. end
  9. def test_should_match_if_actual_parameters_are_same_as_expected_parameters
  10. parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, 6])
  11. assert parameters_matcher.match?(actual_parameters = [4, 5, 6])
  12. end
  13. def test_should_not_match_if_actual_parameters_are_different_from_expected_parameters
  14. parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, 6])
  15. assert !parameters_matcher.match?(actual_parameters = [1, 2, 3])
  16. end
  17. def test_should_not_match_if_there_are_less_actual_parameters_than_expected_parameters
  18. parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, 6])
  19. assert !parameters_matcher.match?(actual_parameters = [4, 5])
  20. end
  21. def test_should_not_match_if_there_are_more_actual_parameters_than_expected_parameters
  22. parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5])
  23. assert !parameters_matcher.match?(actual_parameters = [4, 5, 6])
  24. end
  25. def test_should_not_match_if_not_all_required_parameters_are_supplied
  26. optionals = ParameterMatchers::Optionally.new(6, 7)
  27. parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
  28. assert !parameters_matcher.match?(actual_parameters = [4])
  29. end
  30. def test_should_match_if_all_required_parameters_match_and_no_optional_parameters_are_supplied
  31. optionals = ParameterMatchers::Optionally.new(6, 7)
  32. parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
  33. assert parameters_matcher.match?(actual_parameters = [4, 5])
  34. end
  35. def test_should_match_if_all_required_and_optional_parameters_match_and_some_optional_parameters_are_supplied
  36. optionals = ParameterMatchers::Optionally.new(6, 7)
  37. parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
  38. assert parameters_matcher.match?(actual_parameters = [4, 5, 6])
  39. end
  40. def test_should_match_if_all_required_and_optional_parameters_match_and_all_optional_parameters_are_supplied
  41. optionals = ParameterMatchers::Optionally.new(6, 7)
  42. parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
  43. assert parameters_matcher.match?(actual_parameters = [4, 5, 6, 7])
  44. end
  45. def test_should_not_match_if_all_required_and_optional_parameters_match_but_too_many_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, 7, 8])
  49. end
  50. def test_should_not_match_if_all_required_parameters_match_but_some_optional_parameters_do_not_match
  51. optionals = ParameterMatchers::Optionally.new(6, 7)
  52. parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
  53. assert !parameters_matcher.match?(actual_parameters = [4, 5, 6, 0])
  54. end
  55. def test_should_not_match_if_some_required_parameters_do_not_match_although_all_optional_parameters_do_match
  56. optionals = ParameterMatchers::Optionally.new(6, 7)
  57. parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
  58. assert !parameters_matcher.match?(actual_parameters = [4, 0, 6])
  59. end
  60. def test_should_not_match_if_all_required_parameters_match_but_no_optional_parameters_match
  61. optionals = ParameterMatchers::Optionally.new(6, 7)
  62. parameters_matcher = ParametersMatcher.new(expected_parameters = [4, 5, optionals])
  63. assert !parameters_matcher.match?(actual_parameters = [4, 5, 0, 0])
  64. end
  65. def test_should_match_if_actual_parameters_satisfy_matching_block
  66. parameters_matcher = ParametersMatcher.new { |x, y| x + y == 3 }
  67. assert parameters_matcher.match?(actual_parameters = [1, 2])
  68. end
  69. def test_should_not_match_if_actual_parameters_do_not_satisfy_matching_block
  70. parameters_matcher = ParametersMatcher.new { |x, y| x + y == 3 }
  71. assert !parameters_matcher.match?(actual_parameters = [2, 3])
  72. end
  73. def test_should_remove_outer_array_braces
  74. params = [1, 2, [3, 4]]
  75. parameters_matcher = ParametersMatcher.new(params)
  76. assert_equal '(1, 2, [3, 4])', parameters_matcher.mocha_inspect
  77. end
  78. def test_should_display_numeric_arguments_as_is
  79. params = [1, 2, 3]
  80. parameters_matcher = ParametersMatcher.new(params)
  81. assert_equal '(1, 2, 3)', parameters_matcher.mocha_inspect
  82. end
  83. def test_should_remove_curly_braces_if_hash_is_only_argument
  84. params = [{:a => 1, :z => 2}]
  85. parameters_matcher = ParametersMatcher.new(params)
  86. assert_nil parameters_matcher.mocha_inspect.index('{')
  87. assert_nil parameters_matcher.mocha_inspect.index('}')
  88. end
  89. def test_should_not_remove_curly_braces_if_hash_is_not_the_only_argument
  90. params = [1, {:a => 1}]
  91. parameters_matcher = ParametersMatcher.new(params)
  92. assert_equal '(1, {:a => 1})', parameters_matcher.mocha_inspect
  93. end
  94. def test_should_indicate_that_matcher_will_match_any_actual_parameters
  95. parameters_matcher = ParametersMatcher.new
  96. assert_equal '(any_parameters)', parameters_matcher.mocha_inspect
  97. end
  98. end