### Question:
KeyProvider { public static Path unnestUri(URI nestedUri) { String[] parts = nestedUri.getAuthority().split("@", 2); StringBuilder result = new StringBuilder(parts[0]); result.append(": if (parts.length == 2) { result.append(parts[1]); } result.append(nestedUri.getPath()); if (nestedUri.getQuery() != null) { result.append("?"); result.append(nestedUri.getQuery()); } if (nestedUri.getFragment() != null) { result.append("#"); result.append(nestedUri.getFragment()); } return new Path(result.toString()); }  static Options options(Configuration conf); boolean isTransient(); abstract KeyVersion getKeyVersion(String versionName
                                            ); abstract List<String> getKeys(); Metadata[] getKeysMetadata(String... names); abstract List<KeyVersion> getKeyVersions(String name); KeyVersion getCurrentKey(String name); abstract Metadata getMetadata(String name); abstract KeyVersion createKey(String name, byte[] material,
                                       Options options); KeyVersion createKey(String name, Options options); abstract void deleteKey(String name); abstract KeyVersion rollNewVersion(String name,
                                             byte[] material
                                            ); KeyVersion rollNewVersion(String name); abstract void flush(); static String getBaseName(String versionName); static Path unnestUri(URI nestedUri); static KeyProvider findProvider(List<KeyProvider> providerList,
                                         String keyName); static final String DEFAULT_CIPHER_NAME; static final String DEFAULT_CIPHER; static final String DEFAULT_BITLENGTH_NAME; static final int DEFAULT_BITLENGTH; }### Answer:
@Test public void testUnnestUri() throws Exception { assertEquals(new Path("hdfs: KeyProvider.unnestUri(new URI("myscheme: assertEquals(new Path("hdfs: KeyProvider.unnestUri(new URI("myscheme: assertEquals(new Path("inner: KeyProvider.unnestUri(new URI("outer: assertEquals(new Path("user: KeyProvider.unnestUri(new URI("outer: }