package com.constellio.data.io;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.constellio.data.io.services.facades.IOServices;
import com.constellio.sdk.tests.ConstellioTest;
import com.constellio.sdk.tests.annotations.SlowTest;
@SlowTest
public class ConversionManagerAcceptTest extends ConstellioTest {
IOServices ioServices;
ConversionManager manager;
File tempFolder;
@Before
public void setUp() {
ioServices = getIOLayerFactory().newIOServices();
tempFolder = ioServices.newTemporaryFolder("ConversionManagerAcceptTest");
}
@After
public void tearDown() {
if (manager != null) {
manager.close();
}
}
@Test
public void givenInputStreamThenCreatePDF() {
manager = new ConversionManager(ioServices, 1, tempFolder);
for (int i = 1; i < 9; i++) {
String originalName = "test" + i + ".odt";
InputStream input = getTestResourceInputStream(originalName);
File result = manager.convertToPDF(input, originalName);
assertThat(result.isFile());
}
}
@Test
public void givenInputStreamThenCreatePDFAsync()
throws ExecutionException, InterruptedException {
manager = new ConversionManager(ioServices, 4, tempFolder);
List<Future<File>> results = new ArrayList<>();
for (int i = 1; i < 9; i++) {
String originalName = "test" + i + ".odt";
InputStream input = getTestResourceInputStream(originalName);
results.add(manager.convertToPDFAsync(input, originalName));
}
for (Future<File> result : results) {
assertThat(result.get().isFile());
}
}
}