@Test
  public void testConstructingUserHomeDirectory() throws Exception {
    String[] sources =
        new String[] {
          "output+",
          "/user/hadoop/output",
          "hdfs://container",
          "hdfs://container/",
          "hdfs://container/path",
          "output#link",
          "hdfs://cointaner/output#link",
          "hdfs://container@acc/test"
        };
    String[] expectedResults =
        new String[] {
          "/user/webhcat/output+",
          "/user/hadoop/output",
          "hdfs://container/user/webhcat",
          "hdfs://container/",
          "hdfs://container/path",
          "/user/webhcat/output#link",
          "hdfs://cointaner/output#link",
          "hdfs://container@acc/test"
        };
    for (int i = 0; i < sources.length; i++) {
      String source = sources[i];
      String expectedResult = expectedResults[i];
      String result = TempletonUtils.addUserHomeDirectoryIfApplicable(source, "webhcat");
      Assert.assertEquals(result, expectedResult);
    }

    String badUri = "c:\\some\\path";
    try {
      TempletonUtils.addUserHomeDirectoryIfApplicable(badUri, "webhcat");
      Assert.fail("addUserHomeDirectoryIfApplicable should fail for bad URI: " + badUri);
    } catch (URISyntaxException ex) {
    }
  }