/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE file at the root of the source
* tree and available online at
*
* https://github.com/keeps/roda
*/
package org.roda.core.storage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import org.apache.commons.lang3.RandomStringUtils;
public class RandomMockContentPayload implements ContentPayload {
private String content;
private Path contentPath;
public RandomMockContentPayload() {
content = RandomStringUtils.randomAlphanumeric(2000);
contentPath = null;
}
@Override
public InputStream createInputStream() throws IOException {
return new ByteArrayInputStream(content.getBytes());
}
@Override
public void writeToPath(Path path) throws IOException {
Files.copy(createInputStream(), path, StandardCopyOption.REPLACE_EXISTING);
}
@Override
public URI getURI() throws IOException, UnsupportedOperationException {
if (contentPath == null) {
contentPath = Files.createTempFile("test", ".tmp");
writeToPath(contentPath);
}
return contentPath.toUri();
}
}