@Test public void success_shouldAddMarkerLayerOnce() throws Exception { fragment.createRouteToDestination(); fragment.success(new Route(getFixture("around_the_block"))); fragment.success(new Route(getFixture("around_the_block"))); assertThat(mapController.getMap().layers().contains(fragment.markers)).isTrue(); }
@Test public void success_shouldAddBubblesAandB() throws Exception { Route testRoute = new Route(getFixture("around_the_block")); fragment.createRouteToDestination(); fragment.success(testRoute); assertThat(fragment.markers.size()).isEqualTo(2); }
@Test public void setRouteTo_failureShouldDismissLoadingDialogUpon() throws Exception { fragment.createRouteToDestination(); fragment.failure(500); assertThat(activity.getMapFragment().getView().findViewById(R.id.map)).isVisible(); assertThat(activity.getMapFragment().getView().findViewById(R.id.progress)).isNotVisible(); }
@Test public void setRouteTo_successShouldDismissLoadingDialogUpon() throws Exception { fragment.createRouteToDestination(); fragment.success(new Route(getFixture("around_the_block"))); assertThat(activity.getMapFragment().getView().findViewById(R.id.map)).isVisible(); assertThat(activity.getMapFragment().getView().findViewById(R.id.progress)).isNotVisible(); }
@Test public void failure_shouldClearPreviousRoutes() throws Exception { fragment.createRouteToDestination(); fragment.success(new Route(getFixture("around_the_block"))); fragment.createRouteToDestination(); fragment.failure(500); assertThat(fragment.path.getPoints()).isEmpty(); }
@Test public void start_shouldClearBubbles() throws Exception { fragment.createRouteToDestination(); Route testRoute = new Route(getFixture("around_the_block")); fragment.success(testRoute); fragment.routingCircle.performClick(); assertThat(mapController.getMap().layers().contains(fragment.markers)).isFalse(); }
@Test public void onDetach_shouldRemovePath() throws Exception { fragment.createRouteToDestination(); Route testRoute = new Route(getFixture("around_the_block")); fragment.success(testRoute); fragment.onDetach(); assertThat(mapController.getMap().layers().contains(fragment.path)).isFalse(); }
@Test public void onStart_shouldHaveCurrentLocation() throws Exception { TextView textView = (TextView) fragment.getView().findViewById(R.id.starting_point); fragment.createRouteToDestination(); fragment.success(new Route(getFixture("around_the_block"))); assertThat(textView).isNotNull(); assertThat(textView).hasText("Current Location"); }
@Test public void success_shouldDrawFullRoute() throws Exception { fragment.createRouteToDestination(); Route route = new Route(getFixture("under_hundred")); fragment.success(route); for (Location loc : route.getGeometry()) { assertThat(fragment.path.getPoints()).contains(locationToGeoPoint(loc)); } }
@Test public void success_shouldClearPreviousRoutes() throws Exception { Route route = new Route(getFixture("around_the_block")); fragment.createRouteToDestination(); fragment.success(route); fragment.createRouteToDestination(); fragment.success(route); assertThat(fragment.path.getPoints()).hasSize(route.getGeometry().size()); }
@Test public void onStart_shouldHaveDestinationLocation() throws Exception { SimpleFeature feature = getTestSimpleFeature(); TextView textView = (TextView) fragment.getView().findViewById(R.id.destination); fragment.createRouteToDestination(); fragment.success(new Route(getFixture("around_the_block"))); assertThat(textView).isNotNull(); assertThat(textView).hasText(feature.getProperty(TEXT)); }
@Test public void start_shouldStartRouting() throws Exception { fragment.createRouteToDestination(); Route testRoute = new Route(getFixture("around_the_block")); fragment.success(testRoute); ImageButton startBtn = (ImageButton) fragment.getView().findViewById(R.id.routing_circle); startBtn.performClick(); assertThat(activity.getSupportFragmentManager()).hasFragmentWithTag(RouteFragment.TAG); }
@Test public void reverse_shouldToggleCircleButtonToStart() throws Exception { fragment.createRouteToDestination(); Route testRoute = new Route(getFixture("around_the_block")); fragment.success(testRoute); fragment.reverse(); fragment.reverse(); assertThat(fragment.routingCircle.getTag()).isEqualTo(activity.getString(R.string.start)); }
@Test public void onDetach_shouldRedrawMap() throws Exception { MapFragment mockMapFragment = mock(MapFragment.class); fragment.createRouteToDestination(); Route testRoute = new Route(getFixture("around_the_block")); fragment.success(testRoute); fragment.setMapFragment(mockMapFragment); fragment.onDetach(); verify(mockMapFragment).updateMap(); }
@Test public void success_shouldDrawReducedRoute() throws Exception { fragment.createRouteToDestination(); Route route = new Route(getFixture("ny_to_vermont")); fragment.success(route); for (Location loc : reduceWithTolerance(route.getGeometry(), REDUCE_TOLERANCE)) { assertThat(fragment.path.getPoints()).contains(locationToGeoPoint(loc)); } }
@Test public void onDestroy_shouldHideLocationMarker() throws Exception { fragment.onDestroy(); assertThat( fragment .getMapFragment() .getMap() .layers() .contains(fragment.getMapFragment().getLocationMarkerLayer())) .isTrue(); }
@Test public void byFoot_shouldSetImageResource() throws Exception { fragment.routingCircle.setImageResource(R.drawable.ic_start); fragment.byFoot(true); assertThat(Robolectric.shadowOf(fragment.routingCircle.getDrawable()).getCreatedFromResId()) .isEqualTo(R.drawable.ic_start_walk); }
@Test public void routeForCar_shouldRouteByCar() throws Exception { RadioButton byCar = (RadioButton) fragment.getView().findViewById(R.id.by_car); byCar.setChecked(false); byCar.performClick(); verify(router, times(2)).setDriving(); }
@Test public void byCar_shouldSendMixpanelEvent() throws Exception { RadioButton byCar = (RadioButton) fragment.getView().findViewById(R.id.by_car); byCar.setChecked(false); byCar.performClick(); verify(mixpanelAPI).track(eq(ROUTING_PREVIEW_CAR), any(JSONObject.class)); }
@Test public void reverse_shouldGetFeatureDestinationFirst() throws Exception { mapController.setLocation(getTestLocation(22.22, 44.44)); fragment.reverse(); verify(router, times(4)).setLocation(location.capture()); List<double[]> values = location.getAllValues(); assertThat(values.get(2)).isEqualTo(new double[] {1.0, 1.0}); assertThat(values.get(3)).isEqualTo(new double[] {22.22, 44.44}); }
@Before public void setup() throws Exception { ((TestMapzenApplication) Robolectric.application).inject(this); MockitoAnnotations.initMocks(this); activity = initBaseActivity(); activity.disableActionbar(); destination = getTestSimpleFeature(); fragment = RoutePreviewFragment.newInstance(activity, destination); TestHelper.startFragment(fragment, activity); }
@Test public void onResume_shouldNotCreateRouteToDestinationIfRouting() throws Exception { activity .getSupportFragmentManager() .beginTransaction() .add(new Fragment(), RouteFragment.TAG) .commit(); fragment.onResume(); verify(router, times(1)).fetch(); }
@Test public void reverse_shouldSwapOriginalLocationAndDestination() throws Exception { TextView startingPoint = (TextView) fragment.getView().findViewById(R.id.starting_point); TextView destination = (TextView) fragment.getView().findViewById(R.id.destination); SimpleFeature feature = getTestSimpleFeature(); fragment.createRouteToDestination(); fragment.success(new Route(getFixture("around_the_block"))); fragment.getView().findViewById(R.id.route_reverse).performClick(); fragment.success(new Route(getFixture("around_the_block"))); assertThat(destination).hasText("Current Location"); assertThat(startingPoint).hasText(feature.getProperty(TEXT)); }
@Test public void shouldRetainInstanceState() throws Exception { assertThat(fragment.getRetainInstance()).isTrue(); }
@Test public void onAttach_shouldResetReferenceToActivity() throws Exception { BaseActivity newActivity = initBaseActivity(); fragment.onAttach(newActivity); assertThat(fragment.getBaseActivity()).isEqualTo(newActivity); }
@Test public void onViewCreated_shouldHideActionBar() throws Exception { activity.getSupportActionBar().show(); fragment.onViewCreated(fragment.getView(), null); assertThat(activity.getSupportActionBar().isShowing()).isFalse(); }
@Test(expected = IllegalArgumentException.class) public void onDestroy_shouldUnregisterWithEventBus() throws Exception { fragment.onDestroy(); bus.unregister(fragment); }
@Test public void newInstance_shouldReturnInstanceOfRoutePreviewFragment() throws Exception { assertThat(RoutePreviewFragment.newInstance(activity, destination)) .isInstanceOf(RoutePreviewFragment.class); }
@Test public void setRouteTo_shouldClearMap() throws Exception { fragment.getMapFragment().addPoi(getTestSimpleFeature()); fragment.createRouteToDestination(); assertThat(fragment.getMapFragment().getPoiLayer().size()).isEqualTo(0); }
@Test public void onViewUpdate_shouldCreateRoute() throws Exception { fragment.onViewUpdate(new ViewUpdateEvent()); verify(router, times(2)).fetch(); }