### Question:
TempletonUtils { public static String addUserHomeDirectoryIfApplicable(String origPathStr, String user) throws IOException, URISyntaxException { URI uri = new URI(origPathStr); if (uri.getPath().isEmpty()) { String newPath = "/user/" + user; uri = UriBuilder.fromUri(uri).replacePath(newPath).build(); } else if (!new Path(uri.getPath()).isAbsolute()) { String newPath = "/user/" + user + "/" + uri.getPath(); uri = UriBuilder.fromUri(uri).replacePath(newPath).build(); } return uri.toString(); }  static boolean isset(String s); static boolean isset(char ch); static boolean isset(T[] a); static boolean isset(Collection<T> col); static boolean isset(Map<K, V> col); static String extractPercentComplete(String line); static String extractChildJobId(String line); static String encodeArray(String[] plain); static String encodeArray(List<String> list); static String[] decodeArray(String s); static String[] hadoopFsListAsArray(String files, Configuration conf,
                         String user); static String hadoopFsListAsString(String files, Configuration conf,
                        String user); static String hadoopFsFilename(String fname, Configuration conf, String user); static List<Path> hadoopFsListChildren(String dirName, Configuration conf, String user); static boolean hadoopFsIsMissing(FileSystem fs, Path p); static String addUserHomeDirectoryIfApplicable(String origPathStr, String user); static Path hadoopFsPath(String fname, final Configuration conf, String user); static int fetchUrl(URL url); static Map<String, String> hadoopUserEnv(String user,
                          String overrideClasspath); static String quoteForWindows(String param); static void addCmdForWindows(ArrayList<String> args); static String unEscapeString(String s); static String findContainingJar(Class<?> clazz, String fileNamePattern); static StringBuilder dumpPropMap(String header, Properties props); static StringBuilder dumpPropMap(String header, Map<String, String> map); static final Pattern JAR_COMPLETE; static final Pattern PIG_COMPLETE; static final Pattern HIVE_COMPLETE; static final Pattern TEZ_COMPLETE; static final Pattern TEZ_COUNTERS; static final Pattern JAR_ID; static final Pattern PIG_ID; static final Pattern[] ID_PATTERNS; }### Answer:
@Test public void testConstructingUserHomeDirectory() throws Exception { String[] sources = new String[] { "output+", "/user/hadoop/output", "hdfs: "output#link", "hdfs: "hdfs: String[] expectedResults = new String[] { "/user/webhcat/output+", "/user/hadoop/output", "hdfs: "hdfs: "/user/webhcat/output#link", "hdfs: "hdfs: 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) { } }