routing 0.2.1 → 0.2.2

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.
@@ -71,22 +71,34 @@ describe Routing::Parser::HereSimple do
71
71
  end
72
72
 
73
73
  it 'raises an exception if no matching original position was found' do
74
- expect { subject }.to raise_error(Routing::Parser::NoMatchingMappedPositionFound)
74
+ expect { subject }.to raise_error(Routing::Parser::NoMatchingMappedPositionFound, 'Mapped waypoints did not match with geopoint')
75
+ end
76
+ end
77
+
78
+ context 'when response does not contain enough waypoints to map them on the maneuvers' do
79
+ let(:response) do
80
+ corrupted_response = JSON.parse(fixture('here/response.json'))
81
+ corrupted_response['response']['route'].first['waypoint'].pop
82
+ JSON.dump(corrupted_response)
83
+ end
84
+
85
+ it 'raises an exception if no matching original position was found' do
86
+ expect { subject }.to raise_error(Routing::Parser::NoMatchingMappedPositionFound, 'No more waypoints available')
75
87
  end
76
88
  end
77
89
  end
78
90
  end
79
91
  end
80
92
 
81
- # The fixture used here shows a response from the Here routing service that contains rounding
82
- # errors in the following fields:
93
+ # The fixture used here shows a response from the Here routing service that contains different
94
+ # values in the following fields:
83
95
  # route[] > waypoint[] > mappedPosition > latitude/longitude
84
96
  # route[] > leg[] > maneuver > position > latitude/longitude
85
97
  #
86
- # This two fields are supposed to be the same - yet, they sometimes differ in the 7th decimal place,
98
+ # This two fields are supposed to contain the same values I think. Yet, they sometimes differ,
87
99
  # which caused the parser to fail. This spec assures the parser still works.
88
- context 'with a successful, but very large routing response that includes rounding errors' do
89
- let(:response) { fixture('here/response_with_rounding_errors.json') }
100
+ context 'with a successful, but very large routing response that is not mappable by coordinates' do
101
+ let(:response) { fixture('here/response_with_non_simple_mapping_2.json') }
90
102
  let(:json_response) { JSON.parse(response) }
91
103
 
92
104
  describe '#to_geo_points' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: routing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Bäuerlein
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-06-25 00:00:00.000000000 Z
12
+ date: 2015-06-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -112,7 +112,8 @@ files:
112
112
  - routing.gemspec
113
113
  - spec/fixtures/here/error_response.json
114
114
  - spec/fixtures/here/response.json
115
- - spec/fixtures/here/response_with_rounding_errors.json
115
+ - spec/fixtures/here/response_with_non_simple_mapping.json
116
+ - spec/fixtures/here/response_with_non_simple_mapping_2.json
116
117
  - spec/fixtures/navteq/error_response.json
117
118
  - spec/fixtures/navteq/response.json
118
119
  - spec/routing/adapter/here_spec.rb
@@ -149,7 +150,8 @@ summary: A ruby interface for route calculation services
149
150
  test_files:
150
151
  - spec/fixtures/here/error_response.json
151
152
  - spec/fixtures/here/response.json
152
- - spec/fixtures/here/response_with_rounding_errors.json
153
+ - spec/fixtures/here/response_with_non_simple_mapping.json
154
+ - spec/fixtures/here/response_with_non_simple_mapping_2.json
153
155
  - spec/fixtures/navteq/error_response.json
154
156
  - spec/fixtures/navteq/response.json
155
157
  - spec/routing/adapter/here_spec.rb