package org.bridgedb.util.taverna; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.net.URI; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import net.sf.taverna.t2.activities.testutils.ActivityInvoker; import net.sf.taverna.t2.workflowmodel.OutputPort; import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException; import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; public class BridgeDbActivityTest { private BridgeDbActivityConfigurationBean configBean; private BridgeDbActivity activity = new BridgeDbActivity(); @Before public void makeConfigBean() throws Exception { configBean = new BridgeDbActivityConfigurationBean(); configBean.setConnectionString("something"); configBean.setDriverClass("somethingElse"); } // @Test(expected = ActivityConfigurationException.class) public void invalidConfiguration() throws ActivityConfigurationException { // BridgeDbActivityConfigurationBean invalidBean = new BridgeDbActivityConfigurationBean(); // invalidBean.setConnectionString(""); // // Should throw ActivityConfigurationException // activity.configure(invalidBean); } @Test public void executeAsynch() throws Exception { // activity.configure(configBean); // // Map<String, Object> inputs = new HashMap<String, Object>(); // inputs.put("firstInput", "hello"); // // Map<String, Class<?>> expectedOutputTypes = new HashMap<String, Class<?>>(); // expectedOutputTypes.put("simpleOutput", String.class); // expectedOutputTypes.put("moreOutputs", String.class); // // Map<String, Object> outputs = ActivityInvoker.invokeAsyncActivity( // activity, inputs, expectedOutputTypes); // // assertEquals("Unexpected outputs", 2, outputs.size()); // assertEquals("simple", outputs.get("simpleOutput")); // assertEquals(Arrays.asList("Value 1", "Value 2"), outputs // .get("moreOutputs")); } @Test public void reConfiguredActivity() throws Exception { // assertEquals("Unexpected inputs", 0, activity.getInputPorts().size()); // assertEquals("Unexpected outputs", 0, activity.getOutputPorts().size()); // // activity.configure(configBean); // assertEquals("Unexpected inputs", 1, activity.getInputPorts().size()); // assertEquals("Unexpected outputs", 2, activity.getOutputPorts().size()); // // activity.configure(configBean); // // Should not change on reconfigure // assertEquals("Unexpected inputs", 1, activity.getInputPorts().size()); // assertEquals("Unexpected outputs", 2, activity.getOutputPorts().size()); } @Test public void reConfiguredSpecialPorts() throws Exception { // activity.configure(configBean); // // BridgeDbActivityConfigurationBean specialBean = new BridgeDbActivityConfigurationBean(); // specialBean.setConnectionString("TODO"); // specialBean.setDriverClass("TODO"); // activity.configure(specialBean); // // Should now have added the optional ports // assertEquals("Unexpected inputs", 2, activity.getInputPorts().size()); // assertEquals("Unexpected outputs", 3, activity.getOutputPorts().size()); } @Test public void configureActivity() throws Exception { // Set<String> expectedInputs = new HashSet<String>(); // expectedInputs.add("firstInput"); // // Set<String> expectedOutputs = new HashSet<String>(); // expectedOutputs.add("simpleOutput"); // expectedOutputs.add("moreOutputs"); // // activity.configure(configBean); // // Set<ActivityInputPort> inputPorts = activity.getInputPorts(); // assertEquals(expectedInputs.size(), inputPorts.size()); // for (ActivityInputPort inputPort : inputPorts) { // assertTrue("Wrong input : " + inputPort.getName(), expectedInputs // .remove(inputPort.getName())); // } // // Set<OutputPort> outputPorts = activity.getOutputPorts(); // assertEquals(expectedOutputs.size(), outputPorts.size()); // for (OutputPort outputPort : outputPorts) { // assertTrue("Wrong output : " + outputPort.getName(), // expectedOutputs.remove(outputPort.getName())); // } } }