package com.ontology2.bakemono; import static org.junit.Assert.*; import org.apache.hadoop.mapred.JobConf; import org.apache.hadoop.mapred.lib.HashPartitioner; import org.apache.hadoop.mapred.lib.IdentityReducer; import org.junit.Test; import com.ontology2.bakemono.MainBase.IncorrectUsageException; public class MainTest { @Test public void theDefaultReducerIsTheIdentityReducer() { JobConf conf = new JobConf(Main.class); assertEquals(IdentityReducer.class,conf.getReducerClass()); } @Test public void whatIsTheDefaultPartitioner() { JobConf conf = new JobConf(Main.class); assertEquals(HashPartitioner.class,conf.getPartitionerClass()); } @Test(expected=IncorrectUsageException.class) public void bombsOutIfNoArguments() throws Exception { Main main=new Main(new String[0]); main.parseArguments(); } @Test(expected=IncorrectUsageException.class) public void bombsOutWithAribitraryArgument() throws Exception { Main main=new Main(new String[] {"pulverize"}); main.parseArguments(); } @Test public void acceptsRunCommand() throws Exception { Main main=new Main(new String[] {"run","freebaseRDFPrefilter"}); main.parseArguments(); assertEquals("freebaseRDFPrefilter",main.getToolName()); assertTrue(main.getToolArgs().isEmpty()); } @Test public void acceptsListCommand() throws Exception { Main main=new Main(new String[] {"list"}); main.parseArguments(); assertEquals(null,main.getToolName()); assertEquals(Main.ListTools.class,main.cmd.getClass()); } @Test public void acceptsRunCommandWithArguments() throws Exception { Main main=new Main(new String[] {"run","freebaseRDFPrefilter", "123", "the", "crew", "is", "called", "BDP"}); main.parseArguments(); assertEquals("freebaseRDFPrefilter",main.getToolName()); assertEquals(main.getToolArgs().size(),6); assertEquals("called",main.getToolArgs().get(4)); } @Test(expected=IncorrectUsageException.class) public void ButRunNeedsAnArgument() throws Exception { Main main=new Main(new String[] {"run"}); main.parseArguments(); } @Test(expected=IncorrectUsageException.class) public void AndNotJustAnyArgument() throws Exception { Main main=new Main(new String[] {"run","frumpkins"}); main.parseArguments(); } }