ratis 3.3.6 → 3.3.7
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.
- checksums.yaml +7 -0
- data/.rvmrc +1 -1
- data/CHANGELOG +8 -1
- data/Gemfile +1 -1
- data/Gemfile.lock +33 -35
- data/lib/ratis.rb +1 -1
- data/lib/ratis/landmark.rb +4 -3
- data/lib/ratis/landmark_category.rb +11 -7
- data/lib/ratis/location.rb +1 -0
- data/lib/ratis/route_stops.rb +0 -6
- data/lib/ratis/version.rb +1 -1
- data/lib/ratis/walkstop.rb +54 -0
- data/ratis.gemspec +3 -5
- data/spec/ratis/area_spec.rb +1 -1
- data/spec/ratis/closest_stop_spec.rb +2 -2
- data/spec/ratis/itinerary_spec.rb +8 -711
- data/spec/ratis/landmark_category_spec.rb +40 -32
- data/spec/ratis/landmark_spec.rb +4 -33
- data/spec/ratis/location_spec.rb +69 -177
- data/spec/ratis/next_bus2_spec.rb +21 -21
- data/spec/ratis/next_bus_spec.rb +19 -21
- data/spec/ratis/pattern_spec.rb +3 -3
- data/spec/ratis/plantrip_spec.rb +92 -0
- data/spec/ratis/point_2_point_spec.rb +12 -12
- data/spec/ratis/request_spec.rb +0 -1
- data/spec/ratis/route_pattern_spec.rb +16 -15
- data/spec/ratis/route_stops_spec.rb +10 -10
- data/spec/ratis/routes_spec.rb +5 -5
- data/spec/ratis/schedule_nearby_spec.rb +1 -1
- data/spec/ratis/timetable_spec.rb +3 -3
- data/spec/ratis/walkstop_spec.rb +94 -0
- data/spec/spec_helper.rb +16 -11
- data/spec/support/vcr_cassettes/Nextbus2_running_LATE.yml +142 -574
- data/spec/support/vcr_cassettes/Nextbus_running_LATE.yml +101 -137
- data/spec/support/vcr_cassettes/Point2Point.yml +63 -162
- data/spec/support/vcr_cassettes/Ratis_Area/_all/only_makes_one_request.yml +52 -0
- data/spec/support/vcr_cassettes/Ratis_ClosestStop/_where/only_makes_one_request.yml +70 -0
- data/spec/support/vcr_cassettes/Ratis_ClosestStop/_where/parses_out_the_stop_fields_correctly.yml +70 -0
- data/spec/support/vcr_cassettes/Ratis_ClosestStop/_where/returns_multiple_locations.yml +70 -0
- data/spec/support/vcr_cassettes/Ratis_ClosestStop/_where/should_return_a_collection_of_Ratis_Stop_s_.yml +70 -0
- data/spec/support/vcr_cassettes/Ratis_LandmarkCategory/_all/only_makes_one_request.yml +117 -0
- data/spec/support/vcr_cassettes/Ratis_LandmarkCategory/_all/should_return_a_collection_of_Ratis_LandmarkCategory_s_.yml +117 -0
- data/spec/support/vcr_cassettes/Ratis_LandmarkCategory/_all/should_return_all_landmark_categories.yml +117 -0
- data/spec/support/vcr_cassettes/Ratis_LandmarkCategory/_web_categories/does_something.yml +117 -0
- data/spec/support/vcr_cassettes/Ratis_Location/_where/only_makes_one_request.yml +54 -0
- data/spec/support/vcr_cassettes/Ratis_Location/_where/parses_out_fields_correctly.yml +54 -0
- data/spec/support/vcr_cassettes/Ratis_Location/_where/should_return_a_collection_of_Ratis_Location_s_.yml +54 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus/_where/multiple_services_returned/only_makes_one_request.yml +109 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus/_where/multiple_services_returned/returns_the_next_4_bus_times.yml +109 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus/_where/multiple_services_returned/should_map_all_the_services_to_service_openstruct_objects.yml +109 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus/_where/multiple_services_returned/should_raise_error_if_datetime_condition_is_not_a_DateTime_or_Time.yml +211 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus/_where/single_service_return/only_makes_one_request.yml +75 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus/_where/single_service_return/returns_the_next_bus_times.yml +75 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus/_where/single_service_return/should_raise_error_if_datetime_condition_is_not_a_DateTime_or_Time.yml +143 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus/_where/single_service_return/should_set_all_the_service_values_to_instance_vars.yml +75 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/Developer_can_find_a_late_bus_to_a_stop/runs/should_set_the_run_values_to_instance_vars.yml +180 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/Developer_can_find_a_late_bus_to_a_stop/single_next_bus/only_makes_one_request.yml +180 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/Developer_can_find_a_late_bus_to_a_stop/single_next_bus/requests_the_correct_SOAP_action.yml +180 -0
- data/spec/support/vcr_cassettes/Ratis_NextBus2/_where/Developer_can_find_a_late_bus_to_a_stop/stops/should_set_the_stop_values_to_instance_vars.yml +180 -0
- data/spec/support/vcr_cassettes/Ratis_Pattern/_all/only_makes_one_request.yml +56 -0
- data/spec/support/vcr_cassettes/Ratis_Pattern/_all/should_parse_the_route_info_fields.yml +56 -0
- data/spec/support/vcr_cassettes/Ratis_Pattern/_all/should_return_a_collection_Pattern_RouteInfo_s_.yml +56 -0
- data/spec/support/vcr_cassettes/Ratis_Pattern/_all/should_return_no_data_error_when_date_is_in_the_past.yml +53 -0
- data/spec/support/vcr_cassettes/Ratis_Plantrip/_where/creates_Ratis_Itineraries_for_each_trip_itinerary.yml +88 -0
- data/spec/support/vcr_cassettes/Ratis_Plantrip/_where/only_makes_one_request.yml +88 -0
- data/spec/support/vcr_cassettes/Ratis_Plantrip/_where/returns_a_Plantrip_object.yml +88 -0
- data/spec/support/vcr_cassettes/Ratis_Plantrip/_where/should_set_all_the_Plantrip_values_to_instance_vars.yml +88 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/gets_the_groups.yml +134 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/gets_the_trips_within_each_group.yml +134 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/only_makes_one_request.yml +134 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/parses_out_the_off_stop_fields.yml +134 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/parses_out_the_on_stop_fields.yml +134 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/parses_out_the_service.yml +134 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/parses_out_the_trip.yml +134 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/should_only_return_result_groups_for_filtered_route.yml +62 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/should_only_return_result_groups_for_filtered_routes.yml +68 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_N/_where/should_raise_error_if_the_trip_is_NOT_possible_for_a_route_being_attempted_to_filter_on.yml +53 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_Y/_where/services_from_origin_to_destination/only_makes_one_request.yml +72 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_Y/_where/services_from_origin_to_destination/parses_out_service_fields.yml +72 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_Y/_where/services_from_origin_to_destination/returns_a_routes_only_response_for_each_matched_service.yml +72 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_Y/_where/services_from_origin_to_destination/returns_all_matching_services_that_fit_the_origin/destination_for_a_given_time_frame.yml +72 -0
- data/spec/support/vcr_cassettes/Ratis_Point2Point/Routesonly_Y/_where/services_from_origin_to_destination/should_NOT_filter_by_passed_in_routes.yml +72 -0
- data/spec/support/vcr_cassettes/Ratis_RoutePattern/_where/only_makes_one_request.yml +152 -0
- data/spec/support/vcr_cassettes/Ratis_RoutePattern/_where/should_parse_the_stop_fields.yml +152 -0
- data/spec/support/vcr_cassettes/Ratis_RoutePattern/_where/should_return_a_collection_Ratis_RoutePattern_Point_s_.yml +152 -0
- data/spec/support/vcr_cassettes/Ratis_RoutePattern/_where/should_return_a_collection_Ratis_RoutePattern_Stop_s_.yml +152 -0
- data/spec/support/vcr_cassettes/Ratis_RouteStops/_all/only_makes_one_request.yml +94 -0
- data/spec/support/vcr_cassettes/Ratis_RouteStops/_all/parses_out_the_stop_fields_correctly.yml +94 -0
- data/spec/support/vcr_cassettes/Ratis_RouteStops/_all/should_return_a_collection_of_Ratis_RouteStops_Stop_s_.yml +94 -0
- data/spec/support/vcr_cassettes/Ratis_Routes/_all/only_makes_one_request.yml +779 -0
- data/spec/support/vcr_cassettes/Ratis_Routes/_all/returns_all_routes.yml +779 -0
- data/spec/support/vcr_cassettes/Ratis_Routes/_all/should_set_directions_and_short_name_to_variables.yml +779 -0
- data/spec/support/vcr_cassettes/Ratis_ScheduleNearby/_where/only_makes_one_request.yml +92 -0
- data/spec/support/vcr_cassettes/Ratis_ScheduleNearby/_where/returns_a_non_nil_ScheduleNearby.yml +92 -0
- data/spec/support/vcr_cassettes/Ratis_ScheduleNearby/_where/returns_a_single_service_at_the_stop.yml +92 -0
- data/spec/support/vcr_cassettes/Ratis_ScheduleNearby/_where/returns_all_the_stops.yml +92 -0
- data/spec/support/vcr_cassettes/Ratis_ScheduleNearby/_where/should_return_no_data_error_when_date_is_in_the_past.yml +53 -0
- data/spec/support/vcr_cassettes/Ratis_Timetable/_where/only_makes_one_request.yml +722 -0
- data/spec/support/vcr_cassettes/Ratis_Timetable/_where/should_parse_the_timetable/stop/trip_fields.yml +722 -0
- data/spec/support/vcr_cassettes/Ratis_Timetable/_where/should_return_a_collection_Timetable_Stop_s_.yml +722 -0
- data/spec/support/vcr_cassettes/Ratis_Walkstop/_where/only_makes_one_request.yml +53 -0
- data/spec/support/vcr_cassettes/Ratis_Walkstop/_where/should_set_all_the_walkstop_values_to_instance_vars.yml +53 -0
- metadata +241 -219
- data/lib/ratis/walk.rb +0 -37
- data/spec/ratis/walk_spec.rb +0 -72
- data/spec/support/vcr_cassettes/Nextbus.yml +0 -145
- data/spec/support/vcr_cassettes/Nextbus2.yml +0 -336
@@ -3,43 +3,51 @@ require 'spec_helper'
|
|
3
3
|
describe Ratis::LandmarkCategory do
|
4
4
|
|
5
5
|
before do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
</Typeinfo>
|
12
|
-
<Typeinfo>
|
13
|
-
<Type>CASINO</Type>
|
14
|
-
<Description>CAS</Description>
|
15
|
-
</Typeinfo>
|
16
|
-
<Typeinfo>
|
17
|
-
<Type>CEMETARIES</Type>
|
18
|
-
<Description>CEM</Description>
|
19
|
-
</Typeinfo>
|
20
|
-
</Types>
|
21
|
-
BODY
|
22
|
-
|
23
|
-
@landmark_categories = Ratis::LandmarkCategory.all
|
6
|
+
Ratis.reset
|
7
|
+
Ratis.configure do |config|
|
8
|
+
config.endpoint = 'http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi'
|
9
|
+
config.namespace = 'PX_WEB'
|
10
|
+
end
|
24
11
|
end
|
25
12
|
|
26
|
-
|
27
|
-
|
13
|
+
describe '.all', vcr: {} do
|
14
|
+
it 'only makes one request' do
|
15
|
+
# false just to stop further processing of response
|
16
|
+
Ratis::Request.should_receive(:get).once.and_call_original
|
17
|
+
Ratis::LandmarkCategory.all
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'requests the correct SOAP action with correct args' do
|
21
|
+
Ratis::Request.should_receive(:get) do |action, options|
|
22
|
+
action.should eq('Getcategories')
|
23
|
+
|
24
|
+
end.and_return(double('response', :success? => false))
|
25
|
+
|
26
|
+
Ratis::LandmarkCategory.all
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should return a collection of Ratis::LandmarkCategory(s)' do
|
30
|
+
categories = Ratis::LandmarkCategory.all
|
31
|
+
categories.each do |obj|
|
32
|
+
expect(obj).to be_a(Ratis::LandmarkCategory)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should return all landmark categories' do
|
37
|
+
categories = Ratis::LandmarkCategory.all
|
38
|
+
categories.should have(76).items
|
39
|
+
end
|
28
40
|
end
|
29
41
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
it 'should return all landmark categories' do
|
35
|
-
@landmark_categories.should have(3).items
|
42
|
+
describe '.web_categories', vcr: {} do
|
43
|
+
it "does something" do
|
44
|
+
web_categories = Ratis::LandmarkCategory.web_categories
|
45
|
+
expect(web_categories).to have(14).items
|
36
46
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
@landmark_categories[2].type.should eql 'CEMETARIES'
|
42
|
-
@landmark_categories[2].description.should eql 'CEM'
|
47
|
+
[["AIRPORT", "WEBAIR"], ["COLLEGES", "WEBCOL"], ["COMMUNITY RESOURCES", "WEBCMR"], ["FAMILY ATTRACTIONS", "WEBFAM"], ["GOVT LOCAL STATE FEDERAL", "WEBGOV"], ["HOSPITALS AND CLINICS", "WEBHOS"], ["LIBRARIES", "WEBLIB"], ["LIGHT RAIL STATIONS", "WEBSTN"], ["MUSEUMS", "WEBMUS"], ["PARK AND RIDE", "WEBPR"], ["PERFORMING ARTS", "WEBPER"], ["SHOPPING MALLS", "WEBSHP"], ["SPORTS VENUES", "WEBSPT"], ["TRANSIT CENTERS", "WEBTC"]].each do |pair|
|
48
|
+
expect(web_categories).to include(pair)
|
49
|
+
end
|
50
|
+
end
|
43
51
|
end
|
44
52
|
|
45
53
|
end
|
data/spec/ratis/landmark_spec.rb
CHANGED
@@ -3,49 +3,21 @@ require 'spec_helper'
|
|
3
3
|
describe Ratis::Landmark do
|
4
4
|
|
5
5
|
before do
|
6
|
-
|
7
|
-
<Landmarks>
|
8
|
-
<Landmark>
|
9
|
-
<Id>5007</Id>
|
10
|
-
<Verbose>FALCON FIELD AIRPORT</Verbose>
|
11
|
-
<Location>4800 E. FALCON DR.</Location>
|
12
|
-
<Area>ME</Area>
|
13
|
-
<Latitude>33.456119</Latitude>
|
14
|
-
<Longitude>-111.728010</Longitude>
|
15
|
-
<Locality>N</Locality>
|
16
|
-
<Type>AIRPT</Type>
|
17
|
-
<Map_level>3</Map_level>
|
18
|
-
<Notes> Hours of Operation: </Notes>
|
19
|
-
<Zipcode>85215</Zipcode>
|
20
|
-
</Landmark>
|
21
|
-
<Landmark>
|
22
|
-
<Id>5009</Id>
|
23
|
-
<Verbose>SKY HARBOR AIRPORT TERMINAL 4 WB</Verbose>
|
24
|
-
<Location>3700 E SKY HARBOR BLVD</Location>
|
25
|
-
<Area>PH</Area>
|
26
|
-
<Latitude>33.434520</Latitude>
|
27
|
-
<Longitude>-111.996145</Longitude>
|
28
|
-
<Locality>N</Locality>
|
29
|
-
<Type>AIRPT</Type>
|
30
|
-
<Map_level>3</Map_level>
|
31
|
-
<Notes> Hours of Operation: !!!!!!!!24 hours</Notes>
|
32
|
-
<Zipcode>99999</Zipcode>
|
33
|
-
</Landmark>
|
34
|
-
</Landmarks>
|
35
|
-
BODY
|
36
|
-
|
37
|
-
@landmarks = Ratis::Landmark.where :type => :all
|
6
|
+
# @landmarks = Ratis::Landmark.where :type => :all
|
38
7
|
end
|
39
8
|
|
40
9
|
it 'only makes one request' do
|
10
|
+
pending
|
41
11
|
an_atis_request.should have_been_made.times 1
|
42
12
|
end
|
43
13
|
|
44
14
|
it 'requests the correct SOAP action' do
|
15
|
+
pending
|
45
16
|
an_atis_request_for('Getlandmarks', 'Type' => 'ALL').should have_been_made
|
46
17
|
end
|
47
18
|
|
48
19
|
it 'should return all landmarks' do
|
20
|
+
pending
|
49
21
|
@landmarks.should have(2).items
|
50
22
|
|
51
23
|
@landmarks[0].type.should eql 'AIRPT'
|
@@ -60,4 +32,3 @@ describe Ratis::Landmark do
|
|
60
32
|
end
|
61
33
|
|
62
34
|
end
|
63
|
-
|
data/spec/ratis/location_spec.rb
CHANGED
@@ -1,207 +1,99 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Ratis::Location do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
describe 'Landmark' do
|
10
|
-
|
11
|
-
before do
|
12
|
-
stub_atis_request.to_return( atis_response 'Locate', '1.12', 'ok', <<-BODY )
|
13
|
-
<Projection>SP</Projection>
|
14
|
-
<Locationtype>L</Locationtype>
|
15
|
-
<Location>
|
16
|
-
<Name>CENTRAL STATION</Name>
|
17
|
-
<Area>Phoenix</Area>
|
18
|
-
<Areacode>PH</Areacode>
|
19
|
-
<Region>1</Region>
|
20
|
-
<Zipname></Zipname>
|
21
|
-
<Latitude>33.452082</Latitude>
|
22
|
-
<Longitude>-112.074374</Longitude>
|
23
|
-
<Landmarkid>7234</Landmarkid>
|
24
|
-
<Islocality>N</Islocality>
|
25
|
-
</Location>
|
26
|
-
BODY
|
27
|
-
|
28
|
-
@locations = Ratis::Location.where :location => "Central Station", :media => 'a', :max_answers => 3
|
29
|
-
@first_location = @locations.first
|
4
|
+
before do
|
5
|
+
Ratis.reset
|
6
|
+
Ratis.configure do |config|
|
7
|
+
config.endpoint = 'http://soap.valleymetro.org/cgi-bin-soap-web-262/soap.cgi'
|
8
|
+
config.namespace = 'PX_WEB'
|
30
9
|
end
|
31
|
-
|
32
|
-
describe '#where' do
|
33
|
-
|
34
|
-
it 'only makes one request' do
|
35
|
-
an_atis_request.should have_been_made.times 1
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'requests the correct SOAP action' do
|
39
|
-
an_atis_request_for('Locate', 'Location' => 'Central Station', 'Media' => 'A', 'Maxanswers' => '3').should have_been_made
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'returns the single locations' do
|
43
|
-
@locations.should have(1).item
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'parses out fields correctly' do
|
47
|
-
@first_location.name.should eql 'CENTRAL STATION'
|
48
|
-
@first_location.area.should eql 'Phoenix'
|
49
|
-
@first_location.response.should eql 'ok'
|
50
|
-
@first_location.areacode.should eql 'PH'
|
51
|
-
@first_location.latitude.should eql '33.452082'
|
52
|
-
@first_location.longitude.should eql '-112.074374'
|
53
|
-
@first_location.landmark_id.should eql '7234'
|
54
|
-
@first_location.address.should eql ''
|
55
|
-
@first_location.startaddr.should eql ''
|
56
|
-
@first_location.endaddr.should eql ''
|
57
|
-
@first_location.address_string.should eql 'CENTRAL STATION (in Phoenix)'
|
58
|
-
end
|
59
|
-
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
63
|
-
|
64
|
-
describe 'Address with house number match' do
|
65
|
-
pending 'needs implementation'
|
66
10
|
end
|
67
11
|
|
68
|
-
describe '
|
69
|
-
|
12
|
+
describe '#where', vcr: {} do
|
70
13
|
before do
|
71
|
-
|
72
|
-
|
73
|
-
<Projection>SP</Projection>
|
74
|
-
<Location>
|
75
|
-
<Name>W PENNSYLVANIA AVE</Name>
|
76
|
-
<Area>Youngtown</Area>
|
77
|
-
<Areacode>YG</Areacode>
|
78
|
-
<Region>1</Region>
|
79
|
-
<Zipname>85363 - Youngtown</Zipname>
|
80
|
-
<Latitude>33.5811205</Latitude>
|
81
|
-
<Longitude>-112.2989325</Longitude>
|
82
|
-
<Landmarkid>0</Landmarkid>
|
83
|
-
<Startaddr>11105</Startaddr>
|
84
|
-
<Endaddr>11111</Endaddr>
|
85
|
-
<Startlatitude>33.581130</Startlatitude>
|
86
|
-
<Startlongitude>-112.298791</Startlongitude>
|
87
|
-
<Endlatitude>33.581111</Endlatitude>
|
88
|
-
<Endlongitude>-112.299074</Endlongitude>
|
89
|
-
</Location>
|
90
|
-
<Location>
|
91
|
-
<Name>W PENNSYLVANIA AVE</Name>
|
92
|
-
<Area>Youngtown</Area>
|
93
|
-
<Areacode>YG</Areacode>
|
94
|
-
<Region>1</Region>
|
95
|
-
<Zipname>85363 - Youngtown</Zipname>
|
96
|
-
<Latitude>33.581082</Latitude>
|
97
|
-
<Longitude>-112.2991235</Longitude>
|
98
|
-
<Landmarkid>0</Landmarkid>
|
99
|
-
<Startaddr>11109</Startaddr>
|
100
|
-
<Endaddr>11113</Endaddr>
|
101
|
-
<Startlatitude>33.581111</Startlatitude>
|
102
|
-
<Startlongitude>-112.299074</Startlongitude>
|
103
|
-
<Endlatitude>33.581053</Endlatitude>
|
104
|
-
<Endlongitude>-112.299173</Endlongitude>
|
105
|
-
</Location>
|
106
|
-
BODY
|
107
|
-
|
108
|
-
@locations = Ratis::Location.where :location => '1600 Pennsylvania Ave', :media => 'W', :max_answers => 1000
|
109
|
-
@first_location = @locations.first
|
14
|
+
@conditions = {:location => '1315 W. Straford Dr.',
|
15
|
+
:media => 'W' }
|
110
16
|
end
|
111
17
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
it 'requests the correct SOAP action' do
|
119
|
-
an_atis_request_for('Locate', 'Location' => '1600 Pennsylvania Ave', 'Media' => 'W', 'Maxanswers' => '1000').should have_been_made
|
120
|
-
end
|
18
|
+
it 'only makes one request' do
|
19
|
+
# false just to stop further processing of response
|
20
|
+
Ratis::Request.should_receive(:get).once.and_call_original
|
21
|
+
Ratis::Location.where(@conditions.dup)
|
22
|
+
end
|
121
23
|
|
122
|
-
|
123
|
-
|
124
|
-
|
24
|
+
it 'requests the correct SOAP action with correct args' do
|
25
|
+
Ratis::Request.should_receive(:get) do |action, options|
|
26
|
+
action.should eq('Locate')
|
27
|
+
options["Location"].should eq('1315 W. Straford Dr.')
|
28
|
+
options["Maxanswers"].should eq(20)
|
29
|
+
options["Media"].should eq('W')
|
125
30
|
|
126
|
-
|
127
|
-
@first_location.name.should eql 'W PENNSYLVANIA AVE'
|
128
|
-
@first_location.area.should eql 'Youngtown'
|
129
|
-
@first_location.response.should eql 'ambig'
|
130
|
-
@first_location.areacode.should eql 'YG'
|
131
|
-
@first_location.latitude.should eql '33.5811205'
|
132
|
-
@first_location.longitude.should eql '-112.2989325'
|
133
|
-
@first_location.landmark_id.should eql '0'
|
134
|
-
@first_location.address.should eql ''
|
135
|
-
@first_location.startaddr.should eql '11105'
|
136
|
-
@first_location.endaddr.should eql '11111'
|
137
|
-
@first_location.address_string.should eql '11105 - 11111 W PENNSYLVANIA AVE (in Youngtown)'
|
138
|
-
end
|
31
|
+
end.and_return(double('response', :success? => false))
|
139
32
|
|
33
|
+
Ratis::Location.where(@conditions.dup)
|
140
34
|
end
|
141
35
|
|
142
|
-
|
143
|
-
|
144
|
-
|
36
|
+
it 'should return a collection of Ratis::Location(s)' do
|
37
|
+
locations = Ratis::Location.where(@conditions.dup)
|
38
|
+
locations.each do |obj|
|
39
|
+
expect(obj).to be_a(Ratis::Location)
|
145
40
|
end
|
146
41
|
end
|
147
42
|
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
43
|
+
it 'parses out fields correctly' do
|
44
|
+
locations = Ratis::Location.where(@conditions.dup)
|
45
|
+
first_location = locations.first
|
46
|
+
|
47
|
+
expect(first_location.name).to eql 'W STRAFORD DR'
|
48
|
+
expect(first_location.area).to eql 'Chandler'
|
49
|
+
expect(first_location.responsecode).to eql 'ok'
|
50
|
+
expect(first_location.areacode).to eql 'CH'
|
51
|
+
expect(first_location.latitude).to eql '33.353202'
|
52
|
+
expect(first_location.longitude).to eql '-111.864902'
|
53
|
+
expect(first_location.landmark_id).to eql '0'
|
54
|
+
expect(first_location.address).to eql '1315'
|
55
|
+
expect(first_location.startaddr).to be_nil
|
56
|
+
expect(first_location.endaddr).to be_nil
|
57
|
+
expect(first_location.address_string).to eql '1315 W STRAFORD DR (in Chandler)'
|
164
58
|
end
|
165
59
|
|
166
60
|
end
|
167
61
|
|
168
|
-
describe '#
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
<Location>
|
173
|
-
<Name>Some place</Name>
|
174
|
-
</Location>
|
175
|
-
BODY
|
176
|
-
|
177
|
-
Ratis::Location.where :location => 'Some place', :max_answers => 1000
|
178
|
-
an_atis_request_for('Locate', 'Location' => 'Some place', 'Media' => 'W', 'Maxanswers' => '1000').should have_been_made
|
62
|
+
describe '#to_a' do
|
63
|
+
it 'returns lat, lon, name and landmark_id' do
|
64
|
+
pending
|
65
|
+
@first_location.to_a.should eql ['33.5811205', '-112.2989325', 'W PENNSYLVANIA AVE', '0']
|
179
66
|
end
|
67
|
+
end
|
180
68
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
69
|
+
describe '#to_hash' do
|
70
|
+
it 'returns a subset of Location params' do
|
71
|
+
pending
|
72
|
+
hash = {
|
73
|
+
:latitude => '33.5811205',
|
74
|
+
:longitude => '-112.2989325',
|
75
|
+
:name => 'W PENNSYLVANIA AVE',
|
76
|
+
:area => 'Youngtown',
|
77
|
+
:address => '',
|
78
|
+
:startaddr => '11105',
|
79
|
+
:endaddr => '11111',
|
80
|
+
:address_string => '11105 - 11111 W PENNSYLVANIA AVE (in Youngtown)',
|
81
|
+
:landmark_id => '0' }
|
82
|
+
|
83
|
+
HashDiff.diff(@first_location.to_hash, hash).should eql []
|
185
84
|
end
|
186
85
|
|
187
|
-
|
188
|
-
stub_atis_request.to_return( atis_response 'Locate', '1.12', 'ok', <<-BODY )
|
189
|
-
<Location>
|
190
|
-
<Name>Some place</Name>
|
191
|
-
</Location>
|
192
|
-
BODY
|
86
|
+
end
|
193
87
|
|
194
|
-
|
195
|
-
|
88
|
+
describe '#address_string' do
|
89
|
+
it "does something" do
|
90
|
+
pending
|
196
91
|
end
|
92
|
+
end
|
197
93
|
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
end.to raise_error ArgumentError, 'You must provide a numeric max_answers'
|
94
|
+
describe '#full_address' do
|
95
|
+
it "does something" do
|
96
|
+
pending
|
202
97
|
end
|
203
|
-
|
204
98
|
end
|
205
|
-
|
206
|
-
end
|
207
|
-
|
99
|
+
end
|
@@ -11,7 +11,7 @@ describe Ratis::NextBus2 do
|
|
11
11
|
|
12
12
|
let(:empty_body){ {:nextbus_response => {:atstop => {:service => []}}} }
|
13
13
|
|
14
|
-
describe '#where' do
|
14
|
+
describe '#where', vcr: {} do
|
15
15
|
before do
|
16
16
|
# appid
|
17
17
|
# a short string that can be used to separate requests from different applications or different modules with
|
@@ -61,16 +61,16 @@ describe Ratis::NextBus2 do
|
|
61
61
|
response = Ratis::NextBus2.where(@conditions.dup)
|
62
62
|
late_run = response.runs.first
|
63
63
|
expect(late_run[:realtime][:valid]).to eq("Y")
|
64
|
-
expect(late_run[:realtime][:estimatedtime]).to_not eq(late_run[:triptime])
|
64
|
+
# expect(late_run[:realtime][:estimatedtime]).to_not eq(late_run[:triptime])
|
65
65
|
expect(late_run[:realtime][:reliable]).to eq("Y")
|
66
|
-
expect(late_run[:realtime][:estimatedtime]).to eq("
|
66
|
+
expect(late_run[:realtime][:estimatedtime]).to eq("01:08 PM")
|
67
67
|
expect(late_run[:realtime][:estimatedminutes]).to eq("16")
|
68
68
|
|
69
69
|
# :realtime=>{:valid=>"Y", :estimatedtime=>"02:52 PM", :reliable=>"Y", :stopped=>"N", :estimatedminutes=>"16", :lat=>"33.451187", :polltime=>"02:35 PM", :long=>"-111.982079", :adherence=>"0", :trend=>"D", :speed=>"0.00", :vehicleid=>"6050"},
|
70
70
|
end
|
71
71
|
|
72
72
|
it 'requests the correct SOAP action' do
|
73
|
-
response = Ratis::NextBus2.where(@conditions.dup.merge(:stop_id =>
|
73
|
+
response = Ratis::NextBus2.where(@conditions.dup.merge(:stop_id => @stop_id))
|
74
74
|
expect(response.stops).to_not be_empty
|
75
75
|
expect(response.runs).to_not be_empty
|
76
76
|
end
|
@@ -92,15 +92,15 @@ describe Ratis::NextBus2 do
|
|
92
92
|
expect(response.stops).to be_a(Array)
|
93
93
|
|
94
94
|
expect(stop[:area]).to eq("Phoenix")
|
95
|
-
expect(stop[:atisstopid]).to eq("
|
96
|
-
expect(stop[:stopposition]).to eq("
|
97
|
-
expect(stop[:description]).to eq("
|
95
|
+
expect(stop[:atisstopid]).to eq("6124")
|
96
|
+
expect(stop[:stopposition]).to eq("Y")
|
97
|
+
expect(stop[:description]).to eq("VAN BUREN ST & 16TH ST")
|
98
98
|
expect(stop[:stopstatustype]).to eq("N")
|
99
|
-
expect(stop[:lat]).to eq("33.
|
100
|
-
expect(stop[:long]).to eq("-112.
|
99
|
+
expect(stop[:lat]).to eq("33.451493")
|
100
|
+
expect(stop[:long]).to eq("-112.048207")
|
101
101
|
expect(stop[:side]).to eq("Far")
|
102
|
-
expect(stop[:stopid]).to eq("
|
103
|
-
expect(stop[:heading]).to eq("
|
102
|
+
expect(stop[:stopid]).to eq("10040")
|
103
|
+
expect(stop[:heading]).to eq("WB")
|
104
104
|
end
|
105
105
|
|
106
106
|
it "should return an empty array if the api request isn't successful" do
|
@@ -125,25 +125,25 @@ describe Ratis::NextBus2 do
|
|
125
125
|
expect(response).to be_a(Ratis::NextBus2)
|
126
126
|
expect(response.runs).to be_a(Array)
|
127
127
|
|
128
|
-
expect(run[:operator]).to eq "
|
129
|
-
expect(run[:status]).to eq "
|
130
|
-
expect(run[:sign]).to eq "
|
128
|
+
expect(run[:operator]).to eq "FT"
|
129
|
+
expect(run[:status]).to eq "D"
|
130
|
+
expect(run[:sign]).to eq "3 Van Buren To 75th Avenue"
|
131
131
|
expect(run[:triptime]).to_not be_nil #eq "12:29 PM"
|
132
132
|
expect(run[:triptime]).to_not be_empty
|
133
133
|
# expect(run.realtime=>{:valid=>nil, :estimatedminutes=>nil, :polltime=>nil, :lat=>nil, :trend=>nil, :vehicleid=>nil, :speed=>nil, :adherence=>nil, :long=>nil, :reliable=>nil, :estimatedtime=>"12:09 PM", :stopped=>nil}
|
134
|
-
expect(run[:exception]).to
|
135
|
-
expect(run[:tripid]).to eq "
|
134
|
+
expect(run[:exception]).to eq("N")
|
135
|
+
expect(run[:tripid]).to eq "11221-5"
|
136
136
|
expect(run[:routetype]).to eq "B"
|
137
137
|
expect(run[:skedtripid]).to be_nil
|
138
|
-
expect(run[:stopid]).to eq "
|
138
|
+
expect(run[:stopid]).to eq "10040"
|
139
139
|
expect(run[:servicetype]).to eq "W"
|
140
|
-
expect(run[:adherence]).to
|
141
|
-
expect(run[:atisstopid]).to eq "
|
140
|
+
expect(run[:adherence]).to eq('16')
|
141
|
+
expect(run[:atisstopid]).to eq "6124"
|
142
142
|
# expect(run[:block]).to eq "5"
|
143
|
-
expect(run[:route]).to eq "
|
143
|
+
expect(run[:route]).to eq "3"
|
144
144
|
expect(run[:estimatedtime]).to_not be_nil
|
145
145
|
expect(run[:estimatedtime]).to_not be_empty
|
146
|
-
expect(run[:direction]).to eq "
|
146
|
+
expect(run[:direction]).to eq "W"
|
147
147
|
end
|
148
148
|
end
|
149
149
|
|