/** * Copyright 2014 VU University Medical Center. * Licensed under the Apache License version 2.0 (see http://www.apache.org/licenses/LICENSE-2.0.html). */ package nl.vumc.biomedbridges.examples; import com.google.inject.Guice; import nl.vumc.biomedbridges.core.Constants; import nl.vumc.biomedbridges.core.DummyWorkflow; import nl.vumc.biomedbridges.core.TestGuiceModule; import nl.vumc.biomedbridges.core.Workflow; import nl.vumc.biomedbridges.core.WorkflowFactory; import nl.vumc.biomedbridges.core.WorkflowType; import org.junit.Test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * Unit tests for the RnaSeqDgeExample class. * * @author <a href="mailto:f.debruijn@vumc.nl">Freek de Bruijn</a> */ public class RnaSeqDgeExampleTest { /** * Test the RNA-Seq differential gene expression example under normal circumstances. */ @Test public void testRnaSeqDgeExampleNormal() { final RnaSeqDgeExample example = Guice.createInjector(new TestGuiceModule()).getInstance(RnaSeqDgeExample.class); addDummyOutput(example.workflowFactory, 7); assertTrue(example.runExample(Constants.THE_HYVE_GALAXY_URL)); } /** * Test the RNA-Seq differential gene expression example with a workflow returning false. */ @Test public void testRnaSeqDgeExampleReturningFalse() { final RnaSeqDgeExample example = Guice.createInjector(new TestGuiceModule()).getInstance(RnaSeqDgeExample.class); addDummyOutput(example.workflowFactory, 0); DummyWorkflow.setReturnedResult(false); assertFalse(example.runExample(Constants.THE_HYVE_GALAXY_URL)); } /** * Test the RNA-Seq differential gene expression example with a workflow throwing an exception. */ @Test public void testRnaSeqDgeExampleThrowingException() { final RnaSeqDgeExample example = Guice.createInjector(new TestGuiceModule()).getInstance(RnaSeqDgeExample.class); addDummyOutput(example.workflowFactory, 7); DummyWorkflow.setThrowException(true); assertFalse(example.runExample(Constants.THE_HYVE_GALAXY_URL)); } /** * Add dummy output files that could have been generated by the dummy workflow. * * @param workflowFactory the workflow factory. * @param outputCount the number of dummy output files. */ private void addDummyOutput(final WorkflowFactory workflowFactory, final int outputCount) { final Workflow workflow = workflowFactory.getWorkflow(WorkflowType.DEMONSTRATION, null, Constants.WORKFLOW_RNA_SEQ_DGE); for (int outputIndex = 0; outputIndex < outputCount; outputIndex++) workflow.addOutput("dummy-output-" + (outputIndex + 1), "dummy"); } }