X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fgofetch%2Ftest%2FTestBase.java;fp=src%2Fbe%2Fnikiroo%2Fgofetch%2Ftest%2FTestBase.java;h=e8bfde089785b1ce73408430aa5c4a850320f169;hb=a71d4075a8591b0655277b1a0e606ee48d228869;hp=0000000000000000000000000000000000000000;hpb=1ab7ff0acbc00ddcf6b27a3bebd1e351fdbe96a2;p=gofetch.git diff --git a/src/be/nikiroo/gofetch/test/TestBase.java b/src/be/nikiroo/gofetch/test/TestBase.java new file mode 100644 index 0000000..e8bfde0 --- /dev/null +++ b/src/be/nikiroo/gofetch/test/TestBase.java @@ -0,0 +1,69 @@ +package be.nikiroo.gofetch.test; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.Map; + +import be.nikiroo.gofetch.data.Story; +import be.nikiroo.gofetch.output.Gopher; +import be.nikiroo.gofetch.output.Html; +import be.nikiroo.gofetch.output.Output; +import be.nikiroo.gofetch.support.BasicSupport; +import be.nikiroo.utils.IOUtils; +import be.nikiroo.utils.test.TestCase; +import be.nikiroo.utils.test.TestLauncher; + +/** + * Base class for {@link BasicSupport}s testing. + * + * @author niki + */ +abstract class TestBase extends TestLauncher { + public TestBase(BasicSupport support, String[] args) { + super(support.getType().toString(), args); + addTest(support); + } + + static protected InputStream doOpen(Map map, URL url) + throws IOException { + File file = map.get(url); + if (file == null) { + throw new FileNotFoundException("Test file not found for URL: " + + url); + } + + return new FileInputStream(file); + + } + + private void addTest(final BasicSupport support) { + addTest(new TestCase("Processing example data") { + @Override + public void test() throws Exception { + File expected = new File("test/expected/" + support.getType()); + File actual = new File("test/result/" + support.getType()); + + Output gopher = new Gopher(support.getType(), "", "", 70); + Output html = new Html(support.getType(), "", "", 80); + + for (Story story : support.list()) { + IOUtils.writeSmallFile(new File(actual, story.getId() + + ".header"), gopher.exportHeader(story)); + IOUtils.writeSmallFile( + new File(actual, story.getId() + ""), + gopher.export(story)); + IOUtils.writeSmallFile(new File(actual, story.getId() + + ".header.html"), html.exportHeader(story)); + IOUtils.writeSmallFile(new File(actual, story.getId() + + ".html"), html.export(story)); + } + + assertEquals(expected, actual); + } + }); + } +}