package org.jtwig.integration.resources;
import org.jtwig.JtwigModel;
import org.jtwig.JtwigTemplate;
import org.jtwig.resource.exceptions.ResourceNotFoundException;
import org.junit.Test;
import java.io.File;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.fail;
public class RetrieveNonexistentResourceMultipleTimesTest {
private static ExecutorService service = Executors.newSingleThreadExecutor();
@Test
public void test() throws Exception {
File tempFile = File.createTempFile("non-existing", "file");
if (tempFile.exists())
if (!tempFile.delete()) throw new RuntimeException("Cannot setup test environment! BOOOOM");
final JtwigTemplate jtwigTemplate = JtwigTemplate.fileTemplate(tempFile);
service.submit(new Callable<String>() {
@Override
public String call() throws Exception {
try {
jtwigTemplate.render(JtwigModel.newModel());
fail("Expected exception");
} catch (Exception e) {
}
return null;
}
}).get(10, TimeUnit.SECONDS);
service.submit(new Callable<String>() {
@Override
public String call() throws Exception {
try {
return jtwigTemplate.render(JtwigModel.newModel());
} catch (ResourceNotFoundException e) {
return null;
} catch (Exception e) {
throw e;
}
}
}).get(10, TimeUnit.SECONDS);
}
}