  @Test
  public void isArrivalEvent_returnsTrueWhenManeuverTypeIsArrival_andIsLastInstruction() throws Exception {

    DirectionsRoute route = buildTestDirectionsRoute();
    int first = 0;
    int lastInstruction = 1;
    RouteLeg routeLeg = route.legs().get(first);
    List<LegStep> routeSteps = routeLeg.steps();
    int currentStepIndex = routeSteps.size() - 2;
    int upcomingStepIndex = routeSteps.size() - 1;
    LegStep currentStep = routeSteps.get(currentStepIndex);
    LegStep upcomingStep = routeSteps.get(upcomingStepIndex);
    RouteProgress routeProgress = buildRouteProgress(first, route, currentStep, upcomingStep);
    BannerInstructionMilestone bannerInstructionMilestone = mock(BannerInstructionMilestone.class);
    List<BannerInstructions> currentStepBannerInstructions = currentStep.bannerInstructions();
    buildBannerInstruction(lastInstruction, bannerInstructionMilestone, currentStepBannerInstructions);

    RouteUtils routeUtils = new RouteUtils();

    boolean isArrivalEvent = routeUtils.isArrivalEvent(routeProgress, bannerInstructionMilestone);

    assertTrue(isArrivalEvent);
  }