@Test
  public void testWithLocalJobRunner() throws Exception {
    Configuration conf = new Configuration();
    conf.set("mapreduce.framework.name", "local");
    conf.set("fs.defaultFS", "file:///");

    StartsWithCountJob underTest = new StartsWithCountJob();
    underTest.setConf(conf);

    int exitCode =
        underTest.run(new String[] {inputFile.getAbsolutePath(), output.getAbsolutePath()});
    assertEquals("Returned error code.", 0, exitCode);
    assertTrue(new File(output, "_SUCCESS").exists());
    Map<String, Integer> resAsMap = getResultAsMap(new File(output, "part-r-00000"));

    assertEquals(5, resAsMap.size());
    assertEquals(2, resAsMap.get("t").intValue());
    assertEquals(3, resAsMap.get("i").intValue());
    assertEquals(1, resAsMap.get("j").intValue());
    assertEquals(1, resAsMap.get("a").intValue());
    assertEquals(1, resAsMap.get("y").intValue());
  }
  @Test
  public void testWithMiniCluster() throws Exception {
    FsHelper fsHelper = new FsHelper(dfsCluster.getConfiguration(0));
    Path input = new Path("/tests/wordcount/input/in.txt");
    Path output = new Path("/tests/wordcount/output/");
    fsHelper.writeStringToFile(input, "first line\nsecond line\nthird line");

    StartsWithCountJob underTest = new StartsWithCountJob();
    underTest.setConf(conf);

    int exitCode = underTest.run(new String[] {input.toString(), output.toString()});
    assertEquals("Returned error code.", 0, exitCode);

    FileSystem fs = dfsCluster.getFileSystem();
    assertTrue(fs.exists(new Path(output, "_SUCCESS")));
    String outputAsStr = fsHelper.readStringFroomFile(new Path(output, "part-r-00000"));
    Map<String, Integer> resAsMap = getResultAsMap(outputAsStr);

    assertEquals(4, resAsMap.size());
    assertEquals(1, resAsMap.get("f").intValue());
    assertEquals(1, resAsMap.get("s").intValue());
    assertEquals(1, resAsMap.get("t").intValue());
    assertEquals(3, resAsMap.get("l").intValue());
  }