package edu.mayo.bior.cli.func; import static org.junit.Assert.assertEquals; import java.io.File; import java.io.IOException; import org.junit.Test; import com.jayway.jsonpath.JsonPath; public class VCF2VariantITCase extends BaseFunctionalTest { @Test public void test() throws IOException, InterruptedException { System.out.println("VCF2VariantITCase.test"); String stdin = loadFile(new File("src/test/resources/test.vcf")); CommandOutput out = executeScript("bior_vcf_to_tjson", stdin); assertEquals("STDERR:"+out.stderr+"\n"+"STDOUT:"+out.stdout, 0, out.exit); assertEquals("", out.stderr); String header = getHeader(out.stdout); System.out.println(header); assertEquals( "##fileformat=VCFv4.0" +"\n" + "##fileDate=20090805" +"\n" + "##source=myImputationProgramV3.1" +"\n" + "##reference=1000GenomesPilot-NCBI36" +"\n" + "##phasing=partial" +"\n" + "##INFO=<ID=NS,Number=1,Type=Integer,Description=\"Number of Samples With Data\">" +"\n" + "##INFO=<ID=DP,Number=1,Type=Integer,Description=\"Total Depth\">" +"\n" + "##INFO=<ID=AF,Number=.,Type=Float,Description=\"Allele Frequency\">" +"\n" + "##INFO=<ID=AA,Number=1,Type=String,Description=\"Ancestral Allele\">" +"\n" + "##INFO=<ID=DB,Number=0,Type=Flag,Description=\"dbSNP membership, build 129\">" +"\n" + "##INFO=<ID=H2,Number=0,Type=Flag,Description=\"HapMap2 membership\">" +"\n" + "##BIOR=<ID=\"bior.ToTJson\",Operation=\"bior_vcf_to_tjson\",DataType=\"JSON\",ShortUniqueName=\"ToTJson\">" + "\n" + "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tbior.ToTJson"+"\n", header); // pull out just data rows String data = out.stdout.replace(header, ""); // JSON should be added as last column (9th) String[] cols = data.split("\t"); System.out.println("Columns should be 9 but it is " + cols.length); assertEquals(9, cols.length); String json = cols[cols.length - 1]; assertEquals("20", JsonPath.compile("CHROM").read(json)); assertEquals("14370", JsonPath.compile("POS").read(json)); assertEquals(3, JsonPath.compile("INFO.NS").read(json)); } }