/*
* Copyright (C) 2010 Paul Watts (paulcwatts@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onebusaway.android.io.test;
import org.onebusaway.android.R;
import org.onebusaway.android.app.Application;
import org.onebusaway.android.io.elements.ObaAgency;
import org.onebusaway.android.io.elements.ObaRegion;
import org.onebusaway.android.io.elements.ObaRoute;
import org.onebusaway.android.io.request.ObaRouteRequest;
import org.onebusaway.android.io.request.ObaRouteResponse;
import org.onebusaway.android.mock.MockRegion;
import android.graphics.Color;
public class RouteRequestTest extends ObaTestCase {
public void testKCMRoute() {
int defaultRouteLineColor = getContext().getResources().getColor(
R.color.route_line_color_default);
int defaultRouteTextColor = getContext().getResources().getColor(
R.color.route_text_color_default);
ObaRouteRequest.Builder builder = new ObaRouteRequest.Builder(getContext(), "1_10");
ObaRouteRequest request = builder.build();
ObaRouteResponse response = request.call();
assertOK(response);
assertEquals("1_10", response.getId());
assertEquals("10", response.getShortName());
assertEquals("1", response.getAgencyId());
assertEquals(ObaRoute.TYPE_BUS, response.getType());
int routeColor = defaultRouteLineColor;
if (response.getColor() != null) {
routeColor = response.getColor();
}
int routeTextColor = defaultRouteTextColor;
if (response.getTextColor() != null) {
routeTextColor = response.getTextColor();
}
// KCM doesn't define route line or text color in their GTFS, so we should be using the defaults
assertEquals(defaultRouteLineColor, routeColor);
assertEquals(defaultRouteTextColor, routeTextColor);
ObaAgency agency = response.getAgency();
assertNotNull(agency);
assertEquals("1", agency.getId());
assertEquals("Metro Transit", agency.getName());
}
public void testNewRequest() {
// This is just to make sure we copy and call newRequest() at least once
ObaRouteRequest request = ObaRouteRequest.newRequest(getContext(), "1_10");
assertNotNull(request);
}
public void testHARTRoute() {
// Test by setting region
ObaRegion tampa = MockRegion.getTampa(getContext());
assertNotNull(tampa);
Application.get().setCurrentRegion(tampa);
int defaultRouteLineColor = getContext().getResources().getColor(
R.color.route_line_color_default);
int defaultRouteTextColor = getContext().getResources().getColor(
R.color.route_text_color_default);
ObaRouteRequest.Builder builder = new ObaRouteRequest.Builder(getContext(),
"Hillsborough Area Regional Transit_5");
ObaRouteRequest request = builder.build();
ObaRouteResponse response = request.call();
assertOK(response);
assertEquals("Hillsborough Area Regional Transit_5", response.getId());
assertEquals("5", response.getShortName());
assertEquals("Hillsborough Area Regional Transit", response.getAgencyId());
assertEquals(ObaRoute.TYPE_BUS, response.getType());
int route5LineColor = Color.parseColor("#09346D");
int route5TextColor = Color.parseColor("#FFFFFF");
int routeColor = defaultRouteLineColor;
if (response.getColor() != null) {
routeColor = response.getColor();
}
int routeTextColor = defaultRouteTextColor;
if (response.getTextColor() != null) {
routeTextColor = response.getTextColor();
}
assertEquals(route5LineColor, routeColor);
assertEquals(route5TextColor, routeTextColor);
ObaAgency agency = response.getAgency();
assertNotNull(agency);
assertEquals("Hillsborough Area Regional Transit", agency.getId());
assertEquals("Hillsborough Area Regional Transit", agency.getName());
}
}