[ https://issues.apache.org/jira/browse/ANY23-103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lewis John McGibbney resolved ANY23-103. ---------------------------------------- Resolution: Fixed Committed @1371537 in trunk Thanks Peter > Convert tests to use getResourceAsStream() instead of direct file access > ------------------------------------------------------------------------ > > Key: ANY23-103 > URL: https://issues.apache.org/jira/browse/ANY23-103 > Project: Apache Any23 > Issue Type: Improvement > Reporter: Peter Ansell > > The eventual modularisation of the any23 codebase will be easier if all of > the test resources are available in a single module that is imported by other > modules for their unit tests as necessary, without either duplicating or > splitting up the test resources. > The current tests use direct file access to get access to the test resources, > using new FileInputStream(new File("src/test/resources/testResource")). If > the test resources are imported in with a jar file, this direct file access > method will not work and will need to be replaced by > this.getClass().getResourceAsStream("/testResource"). > For the CLI tests, the test resource will need to be copied to a temporary > folder using something like the following pattern: > @Rule > public TemporaryFolder testDirectory; > private File inputFolder; > private File outputFolder; > @Before > public void setUp() throws Exception > { > inputFolder = testDirectory.newFolder(); > outputFolder = testDirectory.newFolder(); > } > @Test > public void testSomething() > { > final File outFile = File.createTempFile("rover-test", "out", > outputFolder); > final int exitCode = runTool( > String.format( > "-o %s -f nquads -p -n --defaultns %s %s", > outFile.getAbsolutePath(), > DEFAULT_GRAPH, > copyResourceToTempFile("/cli/rover-test1.nq", > inputFolder).getAbsolutePath() > ) > ); > } > protected static File copyResourceToTempFile(String resourceLocation, File > tempDir) throws FileNotFoundException, IOException > { > log.info("nextResource="+resourceLocation); > String fileEnding = > resourceLocation.substring(resourceLocation.lastIndexOf("/")+1); > log.info("fileEnding="+fileEnding); > > File tempFile = File.createTempFile("any23test-", "-"+fileEnding, > tempDir); > > FileOutputStream output = new FileOutputStream(tempFile); > > IOUtils.copy(this.getClass().getResourceAsStream(resourceLocation), > output); > > return tempFile; > } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira