google-geo 1.0 → 2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. data/CHANGELOG +5 -0
  2. data/README +12 -8
  3. data/lib/google/geo.rb +10 -6
  4. data/test/fixtures/invalid_map_key.xml +10 -0
  5. data/test/fixtures/missing_address.xml +10 -0
  6. data/test/fixtures/server_error.xml +10 -0
  7. data/test/fixtures/success.xml +36 -0
  8. data/test/fixtures/success_with_multiple_addresses.xml +62 -0
  9. data/test/fixtures/too_many_queries.xml +10 -0
  10. data/test/fixtures/unavailable_address.xml +10 -0
  11. data/test/fixtures/unknown_address.xml +10 -0
  12. data/test/geo_test.rb +19 -5
  13. data/vendor/mocha-0.4.0/COPYING +3 -0
  14. data/vendor/mocha-0.4.0/MIT-LICENSE +7 -0
  15. data/vendor/mocha-0.4.0/README +35 -0
  16. data/vendor/mocha-0.4.0/RELEASE +98 -0
  17. data/vendor/mocha-0.4.0/Rakefile +126 -0
  18. data/vendor/mocha-0.4.0/examples/misc.rb +36 -0
  19. data/vendor/mocha-0.4.0/examples/mocha.rb +26 -0
  20. data/vendor/mocha-0.4.0/examples/stubba.rb +65 -0
  21. data/vendor/mocha-0.4.0/lib/mocha.rb +19 -0
  22. data/vendor/mocha-0.4.0/lib/mocha/any_instance_method.rb +35 -0
  23. data/vendor/mocha-0.4.0/lib/mocha/auto_verify.rb +113 -0
  24. data/vendor/mocha-0.4.0/lib/mocha/central.rb +35 -0
  25. data/vendor/mocha-0.4.0/lib/mocha/class_method.rb +62 -0
  26. data/vendor/mocha-0.4.0/lib/mocha/expectation.rb +295 -0
  27. data/vendor/mocha-0.4.0/lib/mocha/expectation_error.rb +6 -0
  28. data/vendor/mocha-0.4.0/lib/mocha/infinite_range.rb +27 -0
  29. data/vendor/mocha-0.4.0/lib/mocha/inspect.rb +37 -0
  30. data/vendor/mocha-0.4.0/lib/mocha/instance_method.rb +8 -0
  31. data/vendor/mocha-0.4.0/lib/mocha/metaclass.rb +7 -0
  32. data/vendor/mocha-0.4.0/lib/mocha/mock.rb +20 -0
  33. data/vendor/mocha-0.4.0/lib/mocha/mock_methods.rb +122 -0
  34. data/vendor/mocha-0.4.0/lib/mocha/object.rb +100 -0
  35. data/vendor/mocha-0.4.0/lib/mocha/pretty_parameters.rb +28 -0
  36. data/vendor/mocha-0.4.0/lib/mocha/setup_and_teardown.rb +23 -0
  37. data/vendor/mocha-0.4.0/lib/mocha/standalone.rb +30 -0
  38. data/vendor/mocha-0.4.0/lib/mocha/test_case_adapter.rb +49 -0
  39. data/vendor/mocha-0.4.0/lib/mocha_standalone.rb +2 -0
  40. data/vendor/mocha-0.4.0/lib/stubba.rb +2 -0
  41. data/vendor/mocha-0.4.0/test/active_record_test_case.rb +36 -0
  42. data/vendor/mocha-0.4.0/test/all_tests.rb +75 -0
  43. data/vendor/mocha-0.4.0/test/execution_point.rb +34 -0
  44. data/vendor/mocha-0.4.0/test/method_definer.rb +18 -0
  45. data/vendor/mocha-0.4.0/test/mocha/any_instance_method_test.rb +124 -0
  46. data/vendor/mocha-0.4.0/test/mocha/auto_verify_test.rb +163 -0
  47. data/vendor/mocha-0.4.0/test/mocha/central_test.rb +124 -0
  48. data/vendor/mocha-0.4.0/test/mocha/class_method_test.rb +196 -0
  49. data/vendor/mocha-0.4.0/test/mocha/expectation_test.rb +357 -0
  50. data/vendor/mocha-0.4.0/test/mocha/infinite_range_test.rb +50 -0
  51. data/vendor/mocha-0.4.0/test/mocha/inspect_test.rb +90 -0
  52. data/vendor/mocha-0.4.0/test/mocha/metaclass_test.rb +22 -0
  53. data/vendor/mocha-0.4.0/test/mocha/mock_methods_test.rb +235 -0
  54. data/vendor/mocha-0.4.0/test/mocha/mock_test.rb +84 -0
  55. data/vendor/mocha-0.4.0/test/mocha/object_test.rb +165 -0
  56. data/vendor/mocha-0.4.0/test/mocha/pretty_parameters_test.rb +32 -0
  57. data/vendor/mocha-0.4.0/test/mocha/setup_and_teardown_test.rb +76 -0
  58. data/vendor/mocha-0.4.0/test/mocha_acceptance_test.rb +98 -0
  59. data/vendor/mocha-0.4.0/test/mocha_test_result_integration_test.rb +105 -0
  60. data/vendor/mocha-0.4.0/test/standalone_acceptance_test.rb +110 -0
  61. data/vendor/mocha-0.4.0/test/stubba_acceptance_test.rb +102 -0
  62. data/vendor/mocha-0.4.0/test/stubba_integration_test.rb +89 -0
  63. data/vendor/mocha-0.4.0/test/stubba_test_result_integration_test.rb +85 -0
  64. data/vendor/mocha-0.4.0/test/test_helper.rb +4 -0
  65. metadata +73 -3
@@ -0,0 +1,165 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+ require 'mocha/mock'
3
+ require 'method_definer'
4
+
5
+ require 'mocha/object'
6
+
7
+ class ObjectTest < Test::Unit::TestCase
8
+
9
+ include Mocha
10
+
11
+ def test_should_build_mocha
12
+ instance = Object.new
13
+ mocha = instance.mocha
14
+ assert_not_nil mocha
15
+ assert mocha.is_a?(Mock)
16
+ end
17
+
18
+ def test_should_reuse_existing_mocha
19
+ instance = Object.new
20
+ mocha_1 = instance.mocha
21
+ mocha_2 = instance.mocha
22
+ assert_equal mocha_1, mocha_2
23
+ end
24
+
25
+ def test_should_reset_mocha
26
+ instance = Object.new
27
+ assert_nil instance.reset_mocha
28
+ end
29
+
30
+ def test_should_stub_instance_method
31
+ instance = Object.new
32
+ $stubba = Mock.new
33
+ $stubba.expects(:stub).with(Mocha::InstanceMethod.new(instance, :method1))
34
+ instance.expects(:method1)
35
+ $stubba.verify
36
+ end
37
+
38
+ def test_should_build_and_store_expectation
39
+ instance = Object.new
40
+ $stubba = Mock.new
41
+ $stubba.stubs(:stub)
42
+ expectation = instance.expects(:method1)
43
+ assert_equal [expectation], instance.mocha.expectations
44
+ end
45
+
46
+ def test_should_verify_expectations
47
+ instance = Object.new
48
+ $stubba = Mock.new
49
+ $stubba.stubs(:stub)
50
+ instance.expects(:method1).with(:value1, :value2)
51
+ assert_raise(ExpectationError) { instance.verify }
52
+ end
53
+
54
+ def test_should_pass_backtrace_into_expects
55
+ instance = Object.new
56
+ $stubba = Mock.new
57
+ $stubba.stubs(:stub)
58
+ mocha = Object.new
59
+ mocha.define_instance_accessor(:expects_parameters)
60
+ mocha.define_instance_method(:expects) { |*parameters| self.expects_parameters = parameters }
61
+ backtrace = Object.new
62
+ instance.define_instance_method(:mocha) { mocha }
63
+ instance.define_instance_method(:caller) { backtrace }
64
+ instance.expects(:method1)
65
+ assert_equal [:method1, backtrace], mocha.expects_parameters
66
+ end
67
+
68
+ def test_should_pass_backtrace_into_stubs
69
+ instance = Object.new
70
+ $stubba = Mock.new
71
+ $stubba.stubs(:stub)
72
+ mocha = Object.new
73
+ mocha.define_instance_accessor(:stubs_parameters)
74
+ mocha.define_instance_method(:stubs) { |*parameters| self.stubs_parameters = parameters }
75
+ backtrace = Object.new
76
+ instance.define_instance_method(:mocha) { mocha }
77
+ instance.define_instance_method(:caller) { backtrace }
78
+ instance.stubs(:method1)
79
+ assert_equal [:method1, backtrace], mocha.stubs_parameters
80
+ end
81
+
82
+ def test_should_build_any_instance_object
83
+ klass = Class.new
84
+ any_instance = klass.any_instance
85
+ assert_not_nil any_instance
86
+ assert any_instance.is_a?(Class::AnyInstance)
87
+ end
88
+
89
+ def test_should_return_same_any_instance_object
90
+ klass = Class.new
91
+ any_instance_1 = klass.any_instance
92
+ any_instance_2 = klass.any_instance
93
+ assert_equal any_instance_1, any_instance_2
94
+ end
95
+
96
+ def test_should_stub_class_method
97
+ klass = Class.new
98
+ $stubba = Mock.new
99
+ $stubba.expects(:stub).with(Mocha::ClassMethod.new(klass, :method1))
100
+ klass.expects(:method1)
101
+ $stubba.verify
102
+ end
103
+
104
+ def test_should_build_and_store_class_method_expectation
105
+ klass = Class.new
106
+ $stubba = Mock.new
107
+ $stubba.stubs(:stub)
108
+ expectation = klass.expects(:method1)
109
+ assert_equal [expectation], klass.mocha.expectations
110
+ end
111
+
112
+ def test_should_stub_module_method
113
+ mod = Module.new
114
+ $stubba = Mock.new
115
+ $stubba.expects(:stub).with(Mocha::ClassMethod.new(mod, :method1))
116
+ mod.expects(:method1)
117
+ $stubba.verify
118
+ end
119
+
120
+ def test_should_build_and_store_module_method_expectation
121
+ mod = Module.new
122
+ $stubba = Mock.new
123
+ $stubba.stubs(:stub)
124
+ expectation = mod.expects(:method1)
125
+ assert_equal [expectation], mod.mocha.expectations
126
+ end
127
+
128
+ def test_should_use_stubba_instance_method_for_object
129
+ assert_equal Mocha::InstanceMethod, Object.new.stubba_method
130
+ end
131
+
132
+ def test_should_use_stubba_class_method_for_module
133
+ assert_equal Mocha::ClassMethod, Module.new.stubba_method
134
+ end
135
+
136
+ def test_should_use_stubba_class_method_for_class
137
+ assert_equal Mocha::ClassMethod, Class.new.stubba_method
138
+ end
139
+
140
+ def test_should_use_stubba_class_method_for_any_instance
141
+ assert_equal Mocha::AnyInstanceMethod, Class::AnyInstance.new(nil).stubba_method
142
+ end
143
+
144
+ def test_should_stub_self_for_object
145
+ object = Object.new
146
+ assert_equal object, object.stubba_object
147
+ end
148
+
149
+ def test_should_stub_self_for_module
150
+ mod = Module.new
151
+ assert_equal mod, mod.stubba_object
152
+ end
153
+
154
+ def test_should_stub_self_for_class
155
+ klass = Class.new
156
+ assert_equal klass, klass.stubba_object
157
+ end
158
+
159
+ def test_should_stub_relevant_class_for_any_instance
160
+ klass = Class.new
161
+ any_instance = Class::AnyInstance.new(klass)
162
+ assert_equal klass, any_instance.stubba_object
163
+ end
164
+
165
+ end
@@ -0,0 +1,32 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+ require 'mocha/pretty_parameters'
3
+
4
+ class PrettyParametersTest < Test::Unit::TestCase
5
+
6
+ include Mocha
7
+
8
+ def test_should_remove_outer_array_braces
9
+ params = [1, 2, [3, 4]]
10
+ parameters = PrettyParameters.new(params)
11
+ assert_equal '1, 2, [3, 4]', parameters.pretty
12
+ end
13
+
14
+ def test_should_display_numeric_arguments_as_is
15
+ params = [1, 2, 3]
16
+ parameters = PrettyParameters.new(params)
17
+ assert_equal '1, 2, 3', parameters.pretty
18
+ end
19
+
20
+ def test_should_remove_curly_braces_if_hash_is_only_argument
21
+ params = [{:a => 1, :z => 2}]
22
+ parameters = PrettyParameters.new(params)
23
+ assert_match /^:[az] => [12], :[az] => [12]$/, parameters.pretty
24
+ end
25
+
26
+ def test_should_not_remove_curly_braces_if_hash_is_not_the_only_argument
27
+ params = [1, {:a => 1}]
28
+ parameters = PrettyParameters.new(params)
29
+ assert_equal '1, {:a => 1}', parameters.pretty
30
+ end
31
+
32
+ end
@@ -0,0 +1,76 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+ require 'mocha/mock'
3
+
4
+ require 'mocha/setup_and_teardown'
5
+
6
+ class SetupAndTeardownTest < Test::Unit::TestCase
7
+
8
+ include Mocha
9
+
10
+ def test_should_instantiate_new_stubba
11
+ test_case = stubbed_test_case_class.new
12
+ test_case.setup_stubs
13
+
14
+ assert $stubba
15
+ assert $stubba.is_a?(Mocha::Central)
16
+ end
17
+
18
+ def test_should_verify_all_expectations
19
+ test_case = stubbed_test_case_class.new
20
+ stubba = Mock.new
21
+ stubba.expects(:verify_all)
22
+ $stubba = stubba
23
+
24
+ test_case.verify_stubs
25
+
26
+ stubba.verify
27
+ end
28
+
29
+ def test_should_yield_to_block_for_each_assertion
30
+ test_case = stubbed_test_case_class.new
31
+ $stubba = Mock.new
32
+ $stubba.stubs(:verify_all).yields
33
+ yielded = false
34
+
35
+ test_case.verify_stubs { yielded = true }
36
+
37
+ assert_equal true, yielded
38
+ end
39
+
40
+ def test_should_unstub_all_stubbed_methods
41
+ test_case = stubbed_test_case_class.new
42
+ stubba = Mock.new
43
+ stubba.expects(:unstub_all)
44
+ $stubba = stubba
45
+
46
+ test_case.teardown_stubs
47
+
48
+ stubba.verify
49
+ end
50
+
51
+ def test_should_set_stubba_to_nil
52
+ test_case = stubbed_test_case_class.new
53
+ $stubba = Mock.new
54
+ $stubba.stubs(:unstub_all)
55
+
56
+ test_case.teardown_stubs
57
+
58
+ assert_nil $stubba
59
+ end
60
+
61
+ def test_should_not_raise_exception_if_no_stubba_central_available
62
+ test_case = stubbed_test_case_class.new
63
+ $stubba = nil
64
+ assert_nothing_raised { test_case.teardown_stubs }
65
+ end
66
+
67
+ private
68
+
69
+ def stubbed_test_case_class
70
+ Class.new do
71
+ include Mocha::SetupAndTeardown
72
+ end
73
+ end
74
+
75
+ end
76
+
@@ -0,0 +1,98 @@
1
+ require 'test_helper'
2
+ require 'mocha'
3
+
4
+ class MochaAcceptanceTest < Test::Unit::TestCase
5
+
6
+ class Rover
7
+
8
+ def initialize(left_track, right_track, steps_per_metre, steps_per_degree)
9
+ @left_track, @right_track, @steps_per_metre, @steps_per_degree = left_track, right_track, steps_per_metre, steps_per_degree
10
+ end
11
+
12
+ def forward(metres)
13
+ @left_track.step(metres * @steps_per_metre)
14
+ @right_track.step(metres * @steps_per_metre)
15
+ wait
16
+ end
17
+
18
+ def backward(metres)
19
+ forward(-metres)
20
+ end
21
+
22
+ def left(degrees)
23
+ @left_track.step(-degrees * @steps_per_degree)
24
+ @right_track.step(+degrees * @steps_per_degree)
25
+ wait
26
+ end
27
+
28
+ def right(degrees)
29
+ left(-degrees)
30
+ end
31
+
32
+ def wait
33
+ while (@left_track.moving? or @right_track.moving?); end
34
+ end
35
+
36
+ end
37
+
38
+ def test_should_step_both_tracks_forward_ten_steps
39
+ left_track = mock('left_track')
40
+ right_track = mock('right_track')
41
+ steps_per_metre = 5
42
+ rover = Rover.new(left_track, right_track, steps_per_metre, nil)
43
+
44
+ left_track.expects(:step).with(10)
45
+ right_track.expects(:step).with(10)
46
+
47
+ left_track.stubs(:moving?).returns(false)
48
+ right_track.stubs(:moving?).returns(false)
49
+
50
+ rover.forward(2)
51
+ end
52
+
53
+ def test_should_step_both_tracks_backward_ten_steps
54
+ left_track = mock('left_track')
55
+ right_track = mock('right_track')
56
+ steps_per_metre = 5
57
+ rover = Rover.new(left_track, right_track, steps_per_metre, nil)
58
+
59
+ left_track.expects(:step).with(-10)
60
+ right_track.expects(:step).with(-10)
61
+
62
+ left_track.stubs(:moving?).returns(false)
63
+ right_track.stubs(:moving?).returns(false)
64
+
65
+ rover.backward(2)
66
+ end
67
+
68
+ def test_should_step_left_track_forwards_five_steps_and_right_track_backwards_five_steps
69
+ left_track = mock('left_track')
70
+ right_track = mock('right_track')
71
+ steps_per_degree = 5.0 / 90.0
72
+ rover = Rover.new(left_track, right_track, nil, steps_per_degree)
73
+
74
+ left_track.expects(:step).with(+5)
75
+ right_track.expects(:step).with(-5)
76
+
77
+ left_track.stubs(:moving?).returns(false)
78
+ right_track.stubs(:moving?).returns(false)
79
+
80
+ rover.right(90)
81
+ end
82
+
83
+ def test_should_step_left_track_backwards_five_steps_and_right_track_forwards_five_steps
84
+ left_track = mock('left_track')
85
+ right_track = mock('right_track')
86
+ steps_per_degree = 5.0 / 90.0
87
+ rover = Rover.new(left_track, right_track, nil, steps_per_degree)
88
+
89
+ left_track.expects(:step).with(-5)
90
+ right_track.expects(:step).with(+5)
91
+
92
+ left_track.stubs(:moving?).returns(false)
93
+ right_track.stubs(:moving?).returns(false)
94
+
95
+ rover.left(90)
96
+ end
97
+
98
+ end
@@ -0,0 +1,105 @@
1
+ require 'test_helper'
2
+ require 'mocha/standalone'
3
+ require 'mocha/test_case_adapter'
4
+ require 'execution_point'
5
+
6
+ class MochaTestResultIntegrationTest < Test::Unit::TestCase
7
+
8
+ def test_should_include_expectation_verification_in_assertion_count
9
+ test_result = run_test do
10
+ object = mock()
11
+ object.expects(:message)
12
+ object.message
13
+ end
14
+ assert_equal 1, test_result.assertion_count
15
+ end
16
+
17
+ def test_should_include_assertions_in_assertion_count
18
+ test_result = run_test do
19
+ assert true
20
+ end
21
+ assert_equal 1, test_result.assertion_count
22
+ end
23
+
24
+ def test_should_not_include_stubbing_expectation_verification_in_assertion_count
25
+ test_result = run_test do
26
+ object = mock()
27
+ object.stubs(:message)
28
+ object.message
29
+ end
30
+ assert_equal 0, test_result.assertion_count
31
+ end
32
+
33
+ def test_should_include_expectation_verification_failure_in_failure_count
34
+ test_result = run_test do
35
+ object = mock()
36
+ object.expects(:message)
37
+ end
38
+ assert_equal 1, test_result.failure_count
39
+ end
40
+
41
+ def test_should_include_unexpected_verification_failure_in_failure_count
42
+ test_result = run_test do
43
+ object = mock()
44
+ object.message
45
+ end
46
+ assert_equal 1, test_result.failure_count
47
+ end
48
+
49
+ def test_should_include_assertion_failure_in_failure_count
50
+ test_result = run_test do
51
+ flunk
52
+ end
53
+ assert_equal 1, test_result.failure_count
54
+ end
55
+
56
+ def test_should_display_backtrace_indicating_line_number_where_expects_was_called
57
+ test_result = Test::Unit::TestResult.new
58
+ faults = []
59
+ test_result.add_listener(Test::Unit::TestResult::FAULT, &lambda { |fault| faults << fault })
60
+ execution_point = nil
61
+ run_test(test_result) do
62
+ object = mock()
63
+ execution_point = ExecutionPoint.current; object.expects(:message)
64
+ end
65
+ assert_equal 1, faults.size
66
+ assert_equal execution_point, ExecutionPoint.new(faults.first.location)
67
+ end
68
+
69
+ def test_should_display_backtrace_indicating_line_number_where_unexpected_method_was_called
70
+ test_result = Test::Unit::TestResult.new
71
+ faults = []
72
+ test_result.add_listener(Test::Unit::TestResult::FAULT, &lambda { |fault| faults << fault })
73
+ execution_point = nil
74
+ run_test(test_result) do
75
+ object = mock()
76
+ execution_point = ExecutionPoint.current; object.message
77
+ end
78
+ assert_equal 1, faults.size
79
+ assert_equal execution_point, ExecutionPoint.new(faults.first.location)
80
+ end
81
+
82
+ def test_should_display_backtrace_indicating_line_number_where_failing_assertion_was_called
83
+ test_result = Test::Unit::TestResult.new
84
+ faults = []
85
+ test_result.add_listener(Test::Unit::TestResult::FAULT, &lambda { |fault| faults << fault })
86
+ execution_point = nil
87
+ run_test(test_result) do
88
+ execution_point = ExecutionPoint.current; flunk
89
+ end
90
+ assert_equal 1, faults.size
91
+ assert_equal execution_point, ExecutionPoint.new(faults.first.location)
92
+ end
93
+
94
+ def run_test(test_result = Test::Unit::TestResult.new, &block)
95
+ test_class = Class.new(Test::Unit::TestCase) do
96
+ include Mocha::Standalone
97
+ include Mocha::TestCaseAdapter
98
+ define_method(:test_me, &block)
99
+ end
100
+ test = test_class.new(:test_me)
101
+ test.run(test_result) {}
102
+ test_result
103
+ end
104
+
105
+ end