net.sourceforge.seqware.pipeline.plugins.BasicDeciderET.java Source code

Java tutorial

Introduction

Here is the source code for net.sourceforge.seqware.pipeline.plugins.BasicDeciderET.java

Source

/*
 * Copyright (C) 2013 SeqWare
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package net.sourceforge.seqware.pipeline.plugins;

import com.google.common.io.Files;
import io.seqware.Reports;
import java.io.File;
import java.io.IOException;
import net.sourceforge.seqware.common.module.ReturnValue;
import net.sourceforge.seqware.common.util.Log;
import org.apache.commons.lang3.StringUtils;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

/**
 * These tests support the BasicDecider. Many tests are already in the BasicDeciderTest class(es). This will restrict itself to some basic
 * sanity checking and testing of the generated archetype
 * 
 * @author dyuen
 */
public class BasicDeciderET {

    @BeforeClass
    public static void resetDatabase() {
        ExtendedTestDatabaseCreator.resetDatabaseWithUsers();
        Reports.triggerProvenanceReport();
    }

    @Test
    public void runBasicDecider() throws IOException {
        String listCommand = "-p net.sourceforge.seqware.pipeline.deciders.BasicDecider -- --all --wf-accession 6685 --parent-wf-accessions 4767 --test";
        String listOutput = ITUtility.runSeqWareJar(listCommand, ReturnValue.SUCCESS, null);
        Log.info(listOutput);
        Assert.assertTrue("expected to see 3 launches, found " + StringUtils.countMatches(listOutput, "java -jar"),
                StringUtils.countMatches(listOutput, "java -jar") == 3);
    }

    @Test
    public void createDeciderFromArchetype() throws IOException {
        File createTempDir = Files.createTempDir();
        // generate , build and install the decider archetype
        String command = "mvn archetype:generate -DarchetypeCatalog=local -Dpackage=com.github.seqware -DgroupId=com.github.seqware "
                + "-DarchetypeArtifactId=seqware-archetype-decider -Dversion=1.0-SNAPSHOT -DarchetypeGroupId=com.github.seqware "
                + "-DartifactId=decider-HelloWorld -Dworkflow-name=HelloWorld " + "-B -Dgoals=install";
        String genOutput = ITUtility.runArbitraryCommand(command, 0, createTempDir);
        Log.info(genOutput);
        // run the decider
        File seqwareJar = ITUtility.retrieveFullAssembledJar();
        String SEQWARE_VERSION = ReturnValue.class.getPackage().getImplementationVersion();
        command = "java -cp " + createTempDir.getAbsolutePath()
                + "/decider-HelloWorld/target/Decider_1.0-SNAPSHOT_HelloWorld_1.0_SeqWare_" + SEQWARE_VERSION
                + ".jar:" + seqwareJar.getAbsolutePath()
                + " net.sourceforge.seqware.pipeline.runner.PluginRunner -p com.github.seqware.HelloWorldDecider -- --all --wf-accession 6685 --parent-wf-accessions 4767 --test";
        genOutput = ITUtility.runArbitraryCommand(command, 0, createTempDir);
        Log.info(genOutput);
        Assert.assertTrue("expected to see 1 launches, found " + StringUtils.countMatches(genOutput, "java -jar"),
                StringUtils.countMatches(genOutput, "java -jar") == 1);
    }

}