package org.test4j.tools.commons; import java.io.File; import java.io.FileNotFoundException; import java.io.InputStream; import java.net.URL; import org.junit.Test; import org.test4j.hamcrest.matcher.string.StringMode; import org.test4j.module.ICore; public class ResourceHelperTest implements ICore { private final static String codedir = System.getProperty("user.dir") + "/../test4j.core/src/main/java"; @Test public void findWikiFile_FilePath() throws Exception { File file = ResourceHelper.findWikiFile(null, String.format("file:%s/org/test4j/tools/commons/ResourceHelper.java", codedir)); want.file(file).isExists(); } @Test public void findWikiFile_ClassPath() throws Exception { InputStream stream = ResourceHelper.getResourceAsStream("org/test4j/tools/commons/ResourceHelperTest.class"); want.object(stream).notNull(); File file = ResourceHelper.findWikiFile(null, "org/test4j/tools/commons/ResourceHelperTest.class"); want.file(file).isExists(); } @Test public void findWikiFile_ClassPath2() throws Exception { File file = ResourceHelper.findWikiFile(ResourceHelperTest.class, "ResourceHelperTest.class"); want.file(file).isExists(); } @Test public void getFileEncodingCharset_utf() { File utf8 = new File("src/test/resources/org/test4j/tools/commons/is_utf8.txt"); String encoding = ResourceHelper.getFileEncodingCharset(utf8); want.string(encoding).isEqualTo("UTF-8", StringMode.IgnoreCase); } @Test public void getFileEncodingCharset_gbk() { File gbk = new File("src/test/resources/org/test4j/tools/commons/is_gbk.txt"); String encoding = ResourceHelper.getFileEncodingCharset(gbk); want.string(encoding).isEqualTo("GB2312"); } @Test public void testGetResourceAsStream_file() throws FileNotFoundException { InputStream is = ResourceHelper .getResourceAsStream("file:src/test/resources/org/test4j/tools/commons/executeFile.sql"); want.object(is).notNull(); String sql = ResourceHelper.convertStreamToSQL(is); want.string(sql).contains("insert into tdd_user").notContain("--").notContain("#"); } @Test public void testGetResourceAsStream_classpath() throws FileNotFoundException { InputStream is = ResourceHelper.getResourceAsStream("classpath:org/test4j/tools/commons/executeFile.sql"); want.object(is).notNull(); String sql = ResourceHelper.convertStreamToSQL(is); want.string(sql).contains("insert into tdd_user").notContain("--").notContain("#"); } @Test public void testGetResourceAsStream_classpath2() throws FileNotFoundException { InputStream is = ResourceHelper.getResourceAsStream("org/test4j/tools/commons/executeFile.sql"); want.object(is).notNull(); String sql = ResourceHelper.convertStreamToSQL(is); want.string(sql).contains("insert into tdd_user").notContain("--").notContain("#"); } @Test public void testIsResourceExists_FileInSamePackage() { boolean isExists = ResourceHelper.isResourceExists(ResourceHelper.class, "ResourceHelper.class"); want.bool(isExists).isEqualTo(true); isExists = ResourceHelper.isResourceExists(ResourceHelper.class, "executeFile.sql"); want.bool(isExists).isEqualTo(true); } @Test public void testIsResourceExists_FileInSubPackage() { boolean isExists = ResourceHelper.isResourceExists(ResourceHelperTest.class, "sub/test.file"); want.bool(isExists).isEqualTo(true); } @Test public void testIsResourceExists_FileUnexisted() { boolean isExists = ResourceHelper.isResourceExists(ResourceHelper.class, "unexists.file"); want.bool(isExists).isEqualTo(false); } @Test public void testCopyClassPathResource() { String targetFile = "target/test/test.css"; new File(targetFile).delete(); ResourceHelper.copyClassPathResource("org/test4j/utility/text-diff.css", targetFile); want.file(targetFile).isExists(); } @Test public void testGetSuffixPath() { String path = ResourceHelper.getSuffixPath(new File("src/java/org/test4j"), System.getProperty("user.dir") + "/src/java/org/test4j/reflector/helper/ClazzHelper.java"); want.string(path).isEqualTo("reflector/helper/ClazzHelper.java"); path = ResourceHelper.getSuffixPath(new File("src/java/org/test4j/"), System.getProperty("user.dir") + "/src/java/org/test4j/reflector/helper/ClazzHelper.java"); want.string(path).isEqualTo("reflector/helper/ClazzHelper.java"); } @Test public void testGetResourceUrl() { URL url = ResourceHelper.getResourceUrl("classpath:org/test4j/utility/log4j.xml"); want.string(url.toString()).contains("org/test4j/utility/log4j.xml"); } }