package edu.mayo.bior.cli.func; import static org.junit.Assert.assertEquals; import java.io.IOException; import org.junit.Test; import com.jayway.jsonpath.JsonPath; public class BED2JSONCommandITCase extends BaseFunctionalTest { @Test public void test() throws IOException, InterruptedException { System.out.println("BED2JSONCommandITCasetest"); String stdin = "chr22 1000 5000 cloneA 960 + 1000 5000 0 2 567,488, 0,3512" + "\n"; CommandOutput out = executeScript("bior_bed_to_tjson", stdin); assertEquals("STDERR:"+out.stderr+"\n"+"STDOUT:"+out.stdout, 0, out.exit); assertEquals("", out.stderr); String header = getHeader(out.stdout); assertEquals( "##BIOR=<ID=\"bior.ToTJson\",Operation=\"bior_bed_to_tjson\",DataType=\"JSON\",ShortUniqueName=\"ToTJson\">" + "\n" + "#chrom chromStart chromEnd name score strand thickStart thickEnd itemRgb blockCount blockSizes blockStarts bior.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"); assertEquals(13, cols.length); String json = cols[cols.length - 1]; System.out.println(json); assertEquals("chr22", JsonPath.compile("chrom").read(json)); assertEquals("1000", JsonPath.compile("chromStart").read(json)); assertEquals("5000", JsonPath.compile("chromEnd").read(json)); assertEquals("cloneA", JsonPath.compile("name").read(json)); assertEquals("960", JsonPath.compile("score").read(json)); assertEquals("+", JsonPath.compile("strand").read(json)); assertEquals("1000", JsonPath.compile("thickStart").read(json)); assertEquals("5000", JsonPath.compile("thickEnd").read(json)); assertEquals("0", JsonPath.compile("itemRgb").read(json)); assertEquals("2", JsonPath.compile("blockCount").read(json)); assertEquals("567,488,", JsonPath.compile("blockSizes").read(json)); assertEquals("0,3512", JsonPath.compile("blockStarts").read(json)); } }