package htsjdk.tribble.util; import org.testng.Assert; import org.testng.annotations.Test; import java.io.IOException; import java.io.InputStream; /** * Parsing utils tests */ public class ParsingUtilsTest { static final String AVAILABLE_FTP_URL = "ftp://ftp.broadinstitute.org/pub/igv/TEST/test.txt"; static final String UNAVAILABLE_FTP_URL = "ftp://www.example.com/file.txt"; static final String AVAILABLE_HTTP_URL = "https://www.google.com"; static final String UNAVAILABLE_HTTP_URL = "http://www.unknownhostwhichshouldntexist.com"; @Test public void testSplit1() { String[] tokens = new String[10]; String blankColumnLine = "a\tb\t\td"; int nTokens = ParsingUtils.split(blankColumnLine, tokens, '\t'); Assert.assertEquals(nTokens,4); Assert.assertEquals(tokens[0],"a"); Assert.assertEquals(tokens[1],"b"); Assert.assertEquals(tokens[2],""); Assert.assertEquals(tokens[3],"d"); } @Test public void testSplit2() { String[] tokens = new String[10]; String blankColumnLine = "a\tb\t\td\t"; int nTokens = ParsingUtils.split(blankColumnLine, tokens, '\t'); Assert.assertEquals(nTokens,5); Assert.assertEquals(tokens[0],"a"); Assert.assertEquals(tokens[1],"b"); Assert.assertEquals(tokens[2],""); Assert.assertEquals(tokens[3],"d"); Assert.assertEquals(tokens[4],""); } @Test public void testSplitWhitespace1() { String[] tokens = new String[10]; String blankColumnLine = "a b\t\td"; int nTokens = ParsingUtils.splitWhitespace(blankColumnLine, tokens); Assert.assertEquals(nTokens,4); Assert.assertEquals(tokens[0],"a"); Assert.assertEquals(tokens[1],"b"); Assert.assertEquals(tokens[2],""); Assert.assertEquals(tokens[3],"d"); } @Test public void testSplitWhitespace2() { String[] tokens = new String[10]; String blankColumnLine = "a b\t\td\t"; int nTokens = ParsingUtils.splitWhitespace(blankColumnLine, tokens); Assert.assertEquals(nTokens,5); Assert.assertEquals(tokens[0],"a"); Assert.assertEquals(tokens[1],"b"); Assert.assertEquals(tokens[2],""); Assert.assertEquals(tokens[3],"d"); } @Test public void testFTPDoesExist() throws IOException{ tstExists(AVAILABLE_FTP_URL, true); } @Test public void testFTPNotExist() throws IOException{ tstExists(UNAVAILABLE_FTP_URL, false); } @Test public void testHTTPDoesExist() throws IOException{ tstExists(AVAILABLE_HTTP_URL, true); } @Test public void testHTTPNotExist() throws IOException{ tstExists(UNAVAILABLE_HTTP_URL, false); } private void tstExists(String path, boolean expectExists) throws IOException{ boolean exists = ParsingUtils.resourceExists(path); Assert.assertEquals(exists, expectExists); } @Test public void testFTPOpenInputStream() throws IOException{ tstStream(AVAILABLE_FTP_URL); } @Test public void testHTTPOpenInputStream() throws IOException{ tstStream(AVAILABLE_HTTP_URL); } private void tstStream(String path) throws IOException{ InputStream is = ParsingUtils.openInputStream(path); Assert.assertNotNull(is, "InputStream is null for " + path); int b = is.read(); Assert.assertNotSame(b, -1); } }