@Test public void getActiveFileProvider() throws Exception { String scheme = "scheme"; DefaultFileSystemManager def = new DefaultFileSystemManager(); HadoopConfiguration config = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", new MockHadoopShim() ); HadoopConfigurationProvider configProvider = new MockHadoopConfigurationProvider( Arrays.asList( config ), config.getIdentifier() ); HadoopConfigurationFileSystemManager fsm = new HadoopConfigurationFileSystemManager( configProvider, def ); FileProvider provider = new MockFileProvider(); fsm.addProvider( config, scheme, "alias", provider ); assertEquals( provider, fsm.getActiveFileProvider( scheme ) ); }
@Test( expected = FileSystemException.class ) public void invalidSchemeForConfig_unregistered_scheme() throws Exception { DefaultFileSystemManager def = new DefaultFileSystemManager(); HadoopConfiguration config = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", new MockHadoopShim() ); HadoopConfigurationProvider configProvider = new MockHadoopConfigurationProvider(); HadoopConfigurationFileSystemManager fsm = new HadoopConfigurationFileSystemManager( configProvider, def ); fsm.addProvider( config, "scheme", "alias", new MockFileProvider() ); fsm.getFileProvider( config, "invalid" ); } }
@Test public void multipleProviders_singleConfig() throws Exception { String scheme = "scheme"; String scheme2 = "scheme2"; DefaultFileSystemManager def = new DefaultFileSystemManager(); HadoopConfiguration config = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "1", "one", new MockHadoopShim() ); HadoopConfigurationProvider configProvider = new MockHadoopConfigurationProvider( Arrays.asList( config ), config.getIdentifier() ); HadoopConfigurationFileSystemManager fsm = new HadoopConfigurationFileSystemManager( configProvider, def ); FileProvider provider1 = new MockFileProvider(); FileProvider provider2 = new MockFileProvider(); fsm.addProvider( config, scheme, "one", provider1 ); try { fsm.addProvider( config, scheme, "two", provider2 ); fail( "Expected exception" ); } catch ( FileSystemException ex ) { assertTrue( ex.getMessage(), ex.getMessage().contains( "Scheme already registered: scheme" ) ); } fsm.addProvider( config, scheme2, "two", provider2 ); // make sure all providers were registered with their aliases assertTrue( fsm.hasProvider( scheme ) ); assertTrue( fsm.hasProvider( scheme + "-one" ) ); assertTrue( fsm.hasProvider( scheme2 + "-two" ) ); // Make sure the active config's provider is returned when asked assertEquals( provider1, fsm.getActiveFileProvider( scheme ) ); }
@Test public void getActiveFileProvider_multipleProviders() throws Exception { String scheme = "scheme"; DefaultFileSystemManager def = new DefaultFileSystemManager(); HadoopConfiguration config1 = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "1", "one", new MockHadoopShim() ); HadoopConfiguration config2 = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "2", "two", new MockHadoopShim() ); HadoopConfigurationProvider configProvider = new MockHadoopConfigurationProvider( Arrays.asList( config1, config2 ), config2.getIdentifier() ); HadoopConfigurationFileSystemManager fsm = new HadoopConfigurationFileSystemManager( configProvider, def ); FileProvider provider1 = new MockFileProvider(); FileProvider provider2 = new MockFileProvider(); fsm.addProvider( config1, scheme, "one", provider1 ); fsm.addProvider( config2, scheme, "2", provider2 ); // make sure all providers were registered with their aliases assertTrue( fsm.hasProvider( scheme ) ); assertTrue( fsm.hasProvider( scheme + "-one" ) ); assertTrue( fsm.hasProvider( scheme + "-2" ) ); // Make sure the active config's provider is returned when asked assertEquals( provider2, fsm.getActiveFileProvider( scheme ) ); }
@Test public void addProvider() throws Exception { String scheme = "scheme"; DefaultFileSystemManager def = new DefaultFileSystemManager(); HadoopConfiguration config = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", new MockHadoopShim() ); HadoopConfigurationProvider configProvider = new MockHadoopConfigurationProvider(); HadoopConfigurationFileSystemManager fsm = new HadoopConfigurationFileSystemManager( configProvider, def ); FileProvider provider = new MockFileProvider(); fsm.addProvider( config, scheme, "alias", provider ); assertNotNull( fsm.getFileProvider( config, scheme ) ); assertTrue( fsm.hasProvider( scheme ) ); assertTrue( fsm.hasProvider( scheme + "-alias" ) ); }