Peter Ansell created ANY23-103:
----------------------------------
Summary: 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:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira