@Test( expected = NullPointerException.class ) public void instantiation_null_location() { new HadoopConfiguration( null, "id", "name", new MockHadoopShim() ); }
@Test( expected = NullPointerException.class ) public void instantiation_null_name() throws Exception { new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", null, new MockHadoopShim() ); }
@Test( expected = NullPointerException.class ) public void instantiation_null_id() throws Exception { new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), null, "name", new MockHadoopShim() ); }
@Test public void getLocation() throws Exception { FileObject location = VFS.getManager().resolveFile( "ram:///" ); HadoopConfiguration c = new HadoopConfiguration( location, "id", "name", new MockHadoopShim() ); assertEquals( location, c.getLocation() ); }
@Test public void testToString() throws Exception { HadoopConfiguration c = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", new MockHadoopShim() ); assertEquals( c.getIdentifier(), c.toString() ); }
@Test public void getConfigBuilder() throws FileSystemException { final AtomicBoolean called = new AtomicBoolean( false ); String scheme = "scheme"; HadoopConfiguration config = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", new MockHadoopShim(), null, null, null ); FileProvider provider = new MockFileProvider() { @Override public FileSystemConfigBuilder getConfigBuilder() { called.set( true ); return null; } }; HadoopConfigurationFileSystemManager fsm = createTestFileSystemManager( config, scheme, provider ); ActiveHadoopShimFileProvider p = new ActiveHadoopShimFileProvider( fsm, scheme ); p.getConfigBuilder(); assertTrue( "Expected provider method not called", called.get() ); }
@Test public void getCapabilities() throws FileSystemException { final AtomicBoolean called = new AtomicBoolean( false ); String scheme = "scheme"; HadoopConfiguration config = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", new MockHadoopShim(), null, null, null ); FileProvider provider = new MockFileProvider() { @Override public Collection<Capability> getCapabilities() { called.set( true ); return null; } }; HadoopConfigurationFileSystemManager fsm = createTestFileSystemManager( config, scheme, provider ); ActiveHadoopShimFileProvider p = new ActiveHadoopShimFileProvider( fsm, scheme ); p.getCapabilities(); assertTrue( "Expected provider method not called", called.get() ); }
@Test( expected = FileSystemException.class ) public void invalidSchemeForConfig_unregistered_config() 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.getFileProvider( config, "invalid" ); }
@Test public void createFileSystem() throws FileSystemException { final AtomicBoolean called = new AtomicBoolean( false ); String scheme = "scheme"; HadoopConfiguration config = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", new MockHadoopShim(), null, null, null ); FileProvider provider = new MockFileProvider() { @Override public FileObject createFileSystem( String scheme, FileObject file, FileSystemOptions fileSystemOptions ) throws FileSystemException { called.set( true ); return null; } }; HadoopConfigurationFileSystemManager fsm = createTestFileSystemManager( config, scheme, provider ); ActiveHadoopShimFileProvider p = new ActiveHadoopShimFileProvider( fsm, scheme ); p.createFileSystem( scheme, null, null ); assertTrue( "Expected provider method not called", called.get() ); }
@Test public void parseUri() throws FileSystemException { final AtomicBoolean called = new AtomicBoolean( false ); String scheme = "scheme"; HadoopConfiguration config = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", new MockHadoopShim(), null, null, null ); FileProvider provider = new MockFileProvider() { @Override public FileName parseUri( FileName root, String uri ) throws FileSystemException { called.set( true ); return null; } }; HadoopConfigurationFileSystemManager fsm = createTestFileSystemManager( config, scheme, provider ); ActiveHadoopShimFileProvider p = new ActiveHadoopShimFileProvider( fsm, scheme ); p.parseUri( null, null ); assertTrue( "Expected provider method not called", called.get() ); }
@Test public void findFile() throws FileSystemException { final AtomicBoolean called = new AtomicBoolean( false ); String scheme = "scheme"; HadoopConfiguration config = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", new MockHadoopShim(), null, null, null ); FileProvider provider = new MockFileProvider() { @Override public FileObject findFile( FileObject baseFile, String uri, FileSystemOptions fileSystemOptions ) throws FileSystemException { called.set( true ); return null; } }; HadoopConfigurationFileSystemManager fsm = createTestFileSystemManager( config, scheme, provider ); ActiveHadoopShimFileProvider p = new ActiveHadoopShimFileProvider( fsm, scheme ); p.findFile( null, null, null ); assertTrue( "Expected provider method not called", called.get() ); }
@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 testProcess() throws Exception { HadoopShim hadoopShim = new MockHadoopShim(); HadoopConfiguration c = spy( new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", hadoopShim ) ); Configuration conf = mock( Configuration.class ); c.getHadoopShim().submitJob( conf ); verify( c ).process( conf ); assertEquals( hadoopShim.getHadoopVersion(), c.getHadoopShim().getHadoopVersion() ); } }
@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 public void getHBaseShim() throws Exception { HadoopShim hadoopShim = new MockHadoopShim(); HBaseShim hbaseShim = new MockHBaseShim(); HadoopConfiguration c = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", hadoopShim, hbaseShim ); assertEquals( hbaseShim, c.getHBaseShim() ); }
@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 getSqoopShim() throws Exception { HadoopShim hadoopShim = new MockHadoopShim(); SqoopShim sqoopShim = new MockSqoopShim(); HadoopConfiguration c = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", hadoopShim, sqoopShim ); assertEquals( sqoopShim, c.getSqoopShim() ); }
@Test public void getPigShim() throws Exception { HadoopShim hadoopShim = new MockHadoopShim(); PigShim pigShim = new MockPigShim(); HadoopConfiguration c = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", hadoopShim, pigShim, null ); assertEquals( pigShim, c.getPigShim() ); }
@Test public void getSnappyShim() throws Exception { HadoopShim hadoopShim = new MockHadoopShim(); SnappyShim snappyShim = new MockSnappyShim(); HadoopConfiguration c = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", hadoopShim, snappyShim ); assertEquals( snappyShim, c.getSnappyShim() ); }
@Test public void getSqoopShim_not_set() throws Exception { HadoopShim hadoopShim = new MockHadoopShim(); HadoopConfiguration c = new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", hadoopShim ); try { c.getSqoopShim(); fail( "Expected exception" ); } catch ( ConfigurationException ex ) { assertNotNull( ex.getMessage() ); } }