/**
* 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");
}
}