google-geo 1.0 → 2.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 (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,34 @@
1
+ class ExecutionPoint
2
+
3
+ attr_reader :backtrace
4
+
5
+ def self.current
6
+ new(caller)
7
+ end
8
+
9
+ def initialize(backtrace)
10
+ @backtrace = backtrace
11
+ end
12
+
13
+ def file_name
14
+ /\A(.*?):\d+/.match(@backtrace.first)[1]
15
+ end
16
+
17
+ def line_number
18
+ Integer(/\A.*?:(\d+)/.match(@backtrace.first)[1])
19
+ end
20
+
21
+ def ==(other)
22
+ return false unless other.is_a?(ExecutionPoint)
23
+ (file_name == other.file_name) and (line_number == other.line_number)
24
+ end
25
+
26
+ def to_s
27
+ "file: #{file_name} line: #{line_number}"
28
+ end
29
+
30
+ def inspect
31
+ to_s
32
+ end
33
+
34
+ end
@@ -0,0 +1,18 @@
1
+ require 'mocha/metaclass'
2
+
3
+ class Object
4
+
5
+ def define_instance_method(method_symbol, &block)
6
+ __metaclass__.send(:define_method, method_symbol, block)
7
+ end
8
+
9
+ def replace_instance_method(method_symbol, &block)
10
+ raise "Cannot replace #{method_symbol} as #{self} does not respond to it." unless self.respond_to?(method_symbol)
11
+ define_instance_method(method_symbol, &block)
12
+ end
13
+
14
+ def define_instance_accessor(*symbols)
15
+ symbols.each { |symbol| __metaclass__.send(:attr_accessor, symbol) }
16
+ end
17
+
18
+ end
@@ -0,0 +1,124 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+ require 'method_definer'
3
+ require 'mocha/mock'
4
+ require 'mocha/any_instance_method'
5
+
6
+ class AnyInstanceMethodTest < Test::Unit::TestCase
7
+
8
+ include Mocha
9
+
10
+ def test_should_hide_original_method
11
+ klass = Class.new { def method_x; end }
12
+ method = AnyInstanceMethod.new(klass, :method_x)
13
+ hidden_method_x = method.hidden_method.to_sym
14
+
15
+ method.hide_original_method
16
+
17
+ assert klass.method_defined?(hidden_method_x)
18
+ end
19
+
20
+ def test_should_not_hide_original_method_if_it_is_not_defined
21
+ klass = Class.new
22
+ method = AnyInstanceMethod.new(klass, :method_x)
23
+ hidden_method_x = method.hidden_method.to_sym
24
+
25
+ method.hide_original_method
26
+
27
+ assert_equal false, klass.method_defined?(hidden_method_x)
28
+ end
29
+
30
+ def test_should_define_a_new_method
31
+ klass = Class.new { def method_x; end }
32
+ method = AnyInstanceMethod.new(klass, :method_x)
33
+ mocha = Mock.new
34
+ mocha.expects(:method_x).with(:param1, :param2).returns(:result)
35
+ any_instance = Object.new
36
+ any_instance.define_instance_method(:mocha) { mocha }
37
+ klass.define_instance_method(:any_instance) { any_instance }
38
+
39
+ method.define_new_method
40
+
41
+ instance = klass.new
42
+ result = instance.method_x(:param1, :param2)
43
+
44
+ assert_equal :result, result
45
+ mocha.verify
46
+ end
47
+
48
+ def test_should_restore_original_method
49
+ klass = Class.new { def method_x; end }
50
+ method = AnyInstanceMethod.new(klass, :method_x)
51
+ hidden_method_x = method.hidden_method.to_sym
52
+ klass.send(:define_method, hidden_method_x, Proc.new { :original_result })
53
+
54
+ method.restore_original_method
55
+
56
+ instance = klass.new
57
+ assert_equal :original_result, instance.method_x
58
+ assert !klass.method_defined?(hidden_method_x)
59
+ end
60
+
61
+ def test_should_not_restore_original_method_if_hidden_method_not_defined
62
+ klass = Class.new { def method_x; :new_result; end }
63
+ method = AnyInstanceMethod.new(klass, :method_x)
64
+
65
+ method.restore_original_method
66
+
67
+ instance = klass.new
68
+ assert_equal :new_result, instance.method_x
69
+ end
70
+
71
+ def test_should_call_remove_new_method
72
+ klass = Class.new { def method_x; end }
73
+ any_instance = Mock.new
74
+ any_instance.stubs(:reset_mocha)
75
+ klass.define_instance_method(:any_instance) { any_instance }
76
+ method = AnyInstanceMethod.new(klass, :method_x)
77
+ method.replace_instance_method(:restore_original_method) { }
78
+ method.define_instance_accessor(:remove_called)
79
+ method.replace_instance_method(:remove_new_method) { self.remove_called = true }
80
+
81
+ method.unstub
82
+
83
+ assert method.remove_called
84
+ end
85
+
86
+ def test_should_call_restore_original_method
87
+ klass = Class.new { def method_x; end }
88
+ any_instance = Mock.new
89
+ any_instance.stubs(:reset_mocha)
90
+ klass.define_instance_method(:any_instance) { any_instance }
91
+ method = AnyInstanceMethod.new(klass, :method_x)
92
+ method.replace_instance_method(:remove_new_method) { }
93
+ method.define_instance_accessor(:restore_called)
94
+ method.replace_instance_method(:restore_original_method) { self.restore_called = true }
95
+
96
+ method.unstub
97
+
98
+ assert method.restore_called
99
+ end
100
+
101
+ def test_should_call_reset_mocha
102
+ klass = Class.new { def method_x; end }
103
+ any_instance = Class.new { attr_accessor :mocha_was_reset; def reset_mocha; self.mocha_was_reset = true; end }.new
104
+ klass.define_instance_method(:any_instance) { any_instance }
105
+ method = AnyInstanceMethod.new(klass, :method_x)
106
+ method.replace_instance_method(:remove_new_method) { }
107
+ method.replace_instance_method(:restore_original_method) { }
108
+
109
+ method.unstub
110
+
111
+ assert any_instance.mocha_was_reset
112
+ end
113
+
114
+ def test_should_return_any_instance_mocha_for_stubbee
115
+ mocha = Object.new
116
+ any_instance = Object.new
117
+ any_instance.define_instance_method(:mocha) { mocha }
118
+ stubbee = Class.new
119
+ stubbee.define_instance_method(:any_instance) { any_instance }
120
+ method = AnyInstanceMethod.new(stubbee, :method_name)
121
+ assert_equal stubbee.any_instance.mocha, method.mock
122
+ end
123
+
124
+ end
@@ -0,0 +1,163 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+ require 'mocha/auto_verify'
3
+ require 'method_definer'
4
+
5
+ class AutoVerifyTest < Test::Unit::TestCase
6
+
7
+ attr_reader :test_case
8
+
9
+ def setup
10
+ @test_case = Object.new
11
+ class << test_case
12
+ def self.add_teardown_method(symbol); end
13
+ include Mocha::AutoVerify
14
+ end
15
+ end
16
+
17
+ def test_should_add_mock_type_expectations
18
+ test_case.define_instance_accessor(:expectation_type, :expectations)
19
+ test_case.define_instance_method(:build_mock_with_expectations) do |expectation_type, expectations|
20
+ self.expectation_type = expectation_type
21
+ self.expectations = expectations
22
+ end
23
+ expectations = { :method1 => :value1, :method2 => :value2 }
24
+
25
+ test_case.mock(expectations)
26
+
27
+ assert_equal :expects, test_case.expectation_type
28
+ assert_equal expectations, test_case.expectations
29
+ end
30
+
31
+ def test_should_add_stub_type_expectations
32
+ test_case.define_instance_accessor(:expectation_type, :expectations)
33
+ test_case.define_instance_method(:build_mock_with_expectations) do |expectation_type, expectations|
34
+ self.expectation_type = expectation_type
35
+ self.expectations = expectations
36
+ end
37
+ expectations = { :method1 => :value1, :method2 => :value2 }
38
+
39
+ test_case.stub(expectations)
40
+
41
+ assert_equal :stubs, test_case.expectation_type
42
+ assert_equal expectations, test_case.expectations
43
+ end
44
+
45
+ def test_should_add_greedy_stub_type_expectations
46
+ test_case.define_instance_accessor(:expectation_type, :expectations)
47
+ test_case.define_instance_method(:build_mock_with_expectations) do |expectation_type, expectations|
48
+ self.expectation_type = expectation_type
49
+ self.expectations = expectations
50
+ end
51
+ expectations = { :method1 => :value1, :method2 => :value2 }
52
+
53
+ test_case.stub_everything(expectations)
54
+
55
+ assert_equal :stub_everything, test_case.expectation_type
56
+ assert_equal expectations, test_case.expectations
57
+ end
58
+
59
+ def test_should_build_mock
60
+ mock = test_case.build_mock_with_expectations
61
+ assert mock.is_a?(Mocha::Mock)
62
+ end
63
+
64
+ def test_should_add_expectation_to_mock
65
+ mock = test_case.build_mock_with_expectations(:expects, :expected_method => 'return_value')
66
+ assert_equal 'return_value', mock.expected_method
67
+ end
68
+
69
+ def test_should_build_stub
70
+ stub = test_case.build_mock_with_expectations(:stubs)
71
+ assert stub.is_a?(Mocha::Mock)
72
+ end
73
+
74
+ def test_should_add_expectation_to_stub
75
+ stub = test_case.build_mock_with_expectations(:stubs, :stubbed_method => 'return_value')
76
+ assert_equal 'return_value', stub.stubbed_method
77
+ end
78
+
79
+ def test_should_build_greedy_stub
80
+ greedy_stub = test_case.build_mock_with_expectations(:stub_everything)
81
+ assert greedy_stub.stub_everything
82
+ end
83
+
84
+ def test_should_add_expectations_to_greedy_stub
85
+ greedy_mock = test_case.build_mock_with_expectations(:stub_everything, :stubbed_method => 'return_value')
86
+ assert_equal 'return_value', greedy_mock.stubbed_method
87
+ end
88
+
89
+ def test_should_build_new_mock_each_time
90
+ assert_not_equal test_case.build_mock_with_expectations, test_case.build_mock_with_expectations
91
+ end
92
+
93
+ def test_should_store_each_new_mock
94
+ expected = Array.new(3) { test_case.build_mock_with_expectations }
95
+ assert_equal expected, test_case.mocks
96
+ end
97
+
98
+ def test_should_verify_each_mock
99
+ mocks = Array.new(3) do
100
+ mock = Object.new
101
+ mock.define_instance_accessor(:verify_called)
102
+ mock.define_instance_method(:verify) { self.verify_called = true }
103
+ mock
104
+ end
105
+ test_case.replace_instance_method(:mocks) { mocks }
106
+ test_case.verify_mocks
107
+ assert mocks.all? { |mock| mock.verify_called }
108
+ end
109
+
110
+ def test_should_yield_to_block_for_each_assertion
111
+ mock_class = Class.new do
112
+ def verify(&block); yield; end
113
+ end
114
+ mock = mock_class.new
115
+ test_case.replace_instance_method(:mocks) { [mock] }
116
+ yielded = false
117
+ test_case.verify_mocks { yielded = true }
118
+ assert yielded
119
+ end
120
+
121
+ def test_should_reset_mocks_on_teardown
122
+ mock = Class.new { define_method(:verify) {} }.new
123
+ test_case.mocks << mock
124
+ test_case.teardown_mocks
125
+ assert test_case.mocks.empty?
126
+ end
127
+
128
+ def test_should_stub_everything
129
+ mock = test_case.stub_everything
130
+ assert_equal true, mock.stub_everything
131
+ end
132
+
133
+ def test_should_add_mock_to_mocks
134
+ mock = test_case.mock
135
+ assert_equal [mock], test_case.mocks
136
+ end
137
+
138
+ def test_should_add_stub_to_mocks
139
+ stub = test_case.stub
140
+ assert_equal [stub], test_case.mocks
141
+ end
142
+
143
+ def test_should_add_greedy_stub_to_mocks
144
+ greedy_stub = test_case.stub_everything
145
+ assert_equal [greedy_stub], test_case.mocks
146
+ end
147
+
148
+ def test_should_create_mock_with_name
149
+ mock = test_case.mock('named_mock')
150
+ assert_equal '#<Mock:named_mock>', mock.mocha_inspect
151
+ end
152
+
153
+ def test_should_create_stub_with_name
154
+ stub = test_case.stub('named_stub')
155
+ assert_equal '#<Mock:named_stub>', stub.mocha_inspect
156
+ end
157
+
158
+ def test_should_create_greedy_stub_with_name
159
+ greedy_stub = test_case.stub_everything('named_greedy_stub')
160
+ assert_equal '#<Mock:named_greedy_stub>', greedy_stub.mocha_inspect
161
+ end
162
+
163
+ end
@@ -0,0 +1,124 @@
1
+ require File.join(File.dirname(__FILE__), "..", "test_helper")
2
+
3
+ require 'mocha/central'
4
+ require 'mocha/mock'
5
+ require 'method_definer'
6
+
7
+ class CentralTest < Test::Unit::TestCase
8
+
9
+ include Mocha
10
+
11
+ def test_should_start_with_empty_stubba_methods
12
+ stubba = Central.new
13
+
14
+ assert_equal [], stubba.stubba_methods
15
+ end
16
+
17
+ def test_should_stub_method_if_not_already_stubbed
18
+ method = Mock.new
19
+ method.expects(:stub)
20
+ stubba = Central.new
21
+
22
+ stubba.stub(method)
23
+
24
+ method.verify
25
+ end
26
+
27
+ def test_should_not_stub_method_if_already_stubbed
28
+ method = Mock.new
29
+ method.expects(:stub).times(0)
30
+ stubba = Central.new
31
+ stubba_methods = Mock.new
32
+ stubba_methods.stubs(:include?).with(method).returns(true)
33
+ stubba.stubba_methods = stubba_methods
34
+
35
+ stubba.stub(method)
36
+
37
+ method.verify
38
+ end
39
+
40
+ def test_should_record_method
41
+ method = Mock.new
42
+ method.expects(:stub)
43
+ stubba = Central.new
44
+
45
+ stubba.stub(method)
46
+
47
+ assert_equal [method], stubba.stubba_methods
48
+ end
49
+
50
+ def test_should_unstub_all_methods
51
+ stubba = Central.new
52
+ method_1 = Mock.new
53
+ method_1.expects(:unstub)
54
+ method_2 = Mock.new
55
+ method_2.expects(:unstub)
56
+ stubba.stubba_methods = [method_1, method_2]
57
+
58
+ stubba.unstub_all
59
+
60
+ assert_equal [], stubba.stubba_methods
61
+ method_1.verify
62
+ method_2.verify
63
+ end
64
+
65
+ def test_should_collect_mocks_from_all_methods
66
+ method_1 = Mock.new
67
+ method_1.stubs(:mock).returns(:mock_1)
68
+
69
+ method_2 = Mock.new
70
+ method_2.stubs(:mock).returns(:mock_2)
71
+
72
+ stubba = Central.new
73
+ stubba.stubba_methods = [method_1, method_2]
74
+
75
+ assert_equal 2, stubba.unique_mocks.size
76
+ assert stubba.unique_mocks.include?(:mock_1)
77
+ assert stubba.unique_mocks.include?(:mock_2)
78
+ end
79
+
80
+ def test_should_return_unique_mochas
81
+ method_1 = Mock.new
82
+ method_1.stubs(:mock).returns(:mock_1)
83
+
84
+ method_2 = Mock.new
85
+ method_2.stubs(:mock).returns(:mock_1)
86
+
87
+ stubba = Central.new
88
+ stubba.stubba_methods = [method_1, method_2]
89
+
90
+ assert_equal [:mock_1], stubba.unique_mocks
91
+ end
92
+
93
+ def test_should_call_verify_on_all_unique_mocks
94
+ mock_class = Class.new do
95
+ attr_accessor :verify_called
96
+ def verify
97
+ self.verify_called = true
98
+ end
99
+ end
100
+ mocks = [mock_class.new, mock_class.new]
101
+ stubba = Central.new
102
+ stubba.replace_instance_method(:unique_mocks) { mocks }
103
+
104
+ stubba.verify_all
105
+
106
+ assert mocks.all? { |mock| mock.verify_called }
107
+ end
108
+
109
+ def test_should_call_verify_on_all_unique_mochas
110
+ mock_class = Class.new do
111
+ def verify(&block)
112
+ yield if block_given?
113
+ end
114
+ end
115
+ stubba = Central.new
116
+ stubba.replace_instance_method(:unique_mocks) { [mock_class.new] }
117
+ yielded = false
118
+
119
+ stubba.verify_all { yielded = true }
120
+
121
+ assert yielded
122
+ end
123
+
124
+ end