/*******************************************************************************
*
* Pentaho Big Data
*
* Copyright (C) 2002-2015 by Pentaho : http://www.pentaho.com
*
*******************************************************************************
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************/
package org.pentaho.hadoop.shim;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.VFS;
import org.junit.Test;
import org.pentaho.hadoop.shim.api.Configuration;
import org.pentaho.hadoop.shim.spi.HadoopShim;
import org.pentaho.hadoop.shim.spi.MockHBaseShim;
import org.pentaho.hadoop.shim.spi.MockHadoopShim;
import org.pentaho.hadoop.shim.spi.MockPigShim;
import org.pentaho.hadoop.shim.spi.MockSnappyShim;
import org.pentaho.hadoop.shim.spi.MockSqoopShim;
import org.pentaho.hadoop.shim.spi.PigShim;
import org.pentaho.hadoop.shim.spi.SnappyShim;
import org.pentaho.hadoop.shim.spi.SqoopShim;
import org.pentaho.hbase.shim.spi.HBaseShim;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
public class HadoopConfigurationTest {
@Test( expected = NullPointerException.class )
public void instantiation_null_location() {
new HadoopConfiguration( null, "id", "name", new MockHadoopShim() );
}
@Test( expected = NullPointerException.class )
public void instantiation_null_id() throws Exception {
new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), null, "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_hadoop_shim() throws Exception {
new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", null );
}
@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 getHadoopShim() throws Exception {
HadoopShim hadoopShim = new MockHadoopShim();
HadoopConfiguration c =
new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", hadoopShim );
assertEquals( hadoopShim.getHadoopVersion(), c.getHadoopShim().getHadoopVersion() );
}
@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 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() );
}
}
@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 getPigShim_not_set() throws Exception {
HadoopShim hadoopShim = new MockHadoopShim();
HadoopConfiguration c =
new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", hadoopShim );
try {
c.getPigShim();
fail( "Expected exception" );
} catch ( ConfigurationException ex ) {
assertNotNull( ex.getMessage() );
}
}
@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 getSnappyShim_not_set() throws Exception {
HadoopShim hadoopShim = new MockHadoopShim();
HadoopConfiguration c =
new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", hadoopShim );
try {
c.getSnappyShim();
fail( "Expected exception" );
} catch ( ConfigurationException ex ) {
assertNotNull( ex.getMessage() );
}
}
@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 getHBaseShim_not_set() throws Exception {
HadoopShim hadoopShim = new MockHadoopShim();
HadoopConfiguration c =
new HadoopConfiguration( VFS.getManager().resolveFile( "ram:///" ), "id", "name", hadoopShim );
try {
c.getHBaseShim();
fail( "Expected exception" );
} catch ( ConfigurationException ex ) {
assertNotNull( ex.getMessage() );
}
}
@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 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() );
}
}