public void testPlanner() throws Exception {

    Planner planner =
        new TestPlanner("portland", "NE 43RD AVE at NE GLISAN ST", "NE 43RD AVE at NE ROYAL CT");

    Response response = planner.getItineraries();
    Itinerary itinerary = response.getPlan().itinerary.get(0);
    Leg leg = itinerary.legs.get(0);
    List<WalkStep> steps = leg.walkSteps;
    assertEquals(3, steps.size());
    WalkStep step0 = steps.get(0);
    WalkStep step2 = steps.get(2);
    assertEquals(AbsoluteDirection.NORTH, step0.absoluteDirection);
    assertEquals("NE 43RD AVE", step0.streetName);
    assertEquals("NE 43RD AVE", step2.streetName);
    assertEquals(RelativeDirection.LEFT, step2.relativeDirection);
    assertTrue(step2.stayOn);
  }
  public void testAlerts() throws Exception {

    // SE 47th and Ash, NE 47th and Davis (note that we cross Burnside, this goes from SE to NE)
    Planner planner =
        new TestPlanner("portland", "SE 47TH AVE at SE ASH ST", "NE 47TH AVE at NE COUCH ST");
    Response response = planner.getItineraries();

    Itinerary itinerary = response.getPlan().itinerary.get(0);
    Leg leg = itinerary.legs.get(0);
    List<WalkStep> steps = leg.walkSteps;
    assertEquals(2, steps.size());
    WalkStep step0 = steps.get(0);
    WalkStep step1 = steps.get(1);

    assertNotNull(step0.alerts);
    assertEquals(1, step0.alerts.size());
    assertEquals("SE", step0.alerts.get(0).alertHeaderText.getSomeTranslation());

    assertEquals(1, step1.alerts.size());
    assertEquals("NE", step1.alerts.get(0).alertHeaderText.getSomeTranslation());
  }