package com.ontology2.haruhi.flows; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static org.junit.Assert.assertEquals; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({"../shell/applicationContext.xml","../shell/testDefaults.xml"}) public class AssignmentStepTest { @Autowired AssignmentStep assignmentStep1; @Autowired AssignmentStep assignmentStep2; @Test public void step1ZappaIs11Int() { Map<String,Object> out=assignmentStep1.process(new HashMap<String,Object>(), new ArrayList<String>()); assertEquals(1,out.size()); assertEquals(11,out.get("zappa")); }; @Test(expected=IllegalArgumentException.class) public void step1FailsIfZappaAlreadyExists() { HashMap<String, Object> input = Maps.newHashMap(); input.put("zappa", "frank"); Map<String,Object> out=assignmentStep1.process(input, new ArrayList<String>()); }; @Test public void step2SupportsExistingArguments() { HashMap<String, Object> input = Maps.newHashMap(); input.put("justice", 8); input.put("endymion", "hope"); List<String> positional=Lists.newArrayList("2","great power of"); assertEquals("great power of",positional.get(1)); Map<String,Object> out=assignmentStep2.process(input, positional); assertEquals(2,input.size()); assertEquals(4,out.size()); assertEquals(8,out.get("justice")); assertEquals("hope",out.get("endymion")); assertEquals("22222222",out.get("usagi")); assertEquals("great power of hope",out.get("mamoru")); // yes, i mixed up my series } }