Package com.endgame.binarypig.loaders

Source Code of com.endgame.binarypig.loaders.BinarySequenceFileLoaderTest

package com.endgame.binarypig.loaders;

import java.io.File;
import java.io.IOException;

import junit.framework.TestCase;

import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.InputFormat;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.RecordReader;
import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.SequenceFileRecordReader;
import org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigSplit;
import org.apache.pig.data.Tuple;
import org.easymock.EasyMock;

public class BinarySequenceFileLoaderTest extends TestCase {
  BinarySequenceFileLoader underTest;
  File dataDir = new File("./_data");
 
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    underTest = new BinarySequenceFileLoader();
  }
 
  public void testPrepareToRead() throws IOException
  {
    PigSplit split = null;
    RecordReader reader = EasyMock.createMock(SequenceFileRecordReader.class);
    EasyMock.replay(reader);
    underTest.prepareToRead(reader, null);
    assertTrue(reader == underTest.reader);
  }
 
  public void testGetInputFormat() throws IOException
  {
    InputFormat f = underTest.getInputFormat();
    assertEquals(f.getClass(), SequenceFileInputFormat.class);
  }
 
  public void testShouldContinue() throws IOException, InterruptedException
  {
    underTest.reader = EasyMock.createMock(SequenceFileRecordReader.class);
    EasyMock.expect(underTest.reader.nextKeyValue()).andReturn(true);
    EasyMock.replay(underTest.reader);
    assertTrue(underTest.shouldContinue());
   
    underTest.reader = EasyMock.createMock(SequenceFileRecordReader.class);
    EasyMock.expect(underTest.reader.nextKeyValue()).andReturn(false);
    EasyMock.replay(underTest.reader);
    assertFalse(underTest.shouldContinue());
  }
 
  public void testGetNext() throws IOException, InterruptedException
  {
    SequenceFileRecordReader reader = EasyMock.createMock(SequenceFileRecordReader.class);
    EasyMock.expect(reader.nextKeyValue()).andReturn(true);
    EasyMock.expect(reader.getCurrentKey()).andReturn(new Text("mykey1"));
    EasyMock.expect(reader.getCurrentValue()).andReturn(new BytesWritable("test123".getBytes()));
    EasyMock.replay(reader);
   
    underTest.prepareToRead(reader, null);
    Tuple tuple = underTest.getNext();
    assertEquals(2, tuple.size());
    assertEquals(tuple.get(0), new Text("mykey1"));
    assertEquals(tuple.get(1), new BytesWritable("test123".getBytes()));
   
    // returns null when no more tuples are available
    reader = EasyMock.createMock(SequenceFileRecordReader.class);
    EasyMock.expect(reader.nextKeyValue()).andReturn(false);
    EasyMock.replay(reader);
    underTest.reader = reader;
   
    tuple = underTest.getNext();
    assertNull(tuple);
  }
 
  public void testSetLocation() throws IOException
  {
    Job job = new Job();
    underTest.setLocation("/tmp/some/path", job);
    assertEquals("file:/tmp/some/path", job.getConfiguration().get("mapred.input.dir"));
  }

}
TOP

Related Classes of com.endgame.binarypig.loaders.BinarySequenceFileLoaderTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.