package hip.ch8.localjobrunner; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.KeyValueTextInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; import org.junit.Test; import java.io.IOException; import static junit.framework.Assert.assertTrue; public class IdentityWithBuilderTest { @Test public void run() throws Exception { TextIOJobBuilder builder = new TextIOJobBuilder() .addInput("foo", "bar") .addExpectedOutput("foo", "bar") .writeInputs(); Job job = runJob( builder.getConfig(), builder.getInputPath(), builder.getOutputPath()); assertTrue(job.isSuccessful()); builder.verifyResults(); } public Job runJob(Configuration conf, Path inputPath, Path outputPath) throws ClassNotFoundException, IOException, InterruptedException { Job job = new Job(conf); job.setInputFormatClass(KeyValueTextInputFormat.class); job.setMapOutputKeyClass(Text.class); FileInputFormat.setInputPaths(job, inputPath); FileOutputFormat.setOutputPath(job, outputPath); job.waitForCompletion(false); return job; } }