mirror of
https://github.com/Alfresco/alfresco-transform-core.git
synced 2025-06-30 18:14:51 +00:00
MNT-24883 add tests for creating source files from InputStream for DOCX files
This commit is contained in:
parent
1187cf0d33
commit
ba24d8d700
@ -26,9 +26,9 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.transform.base.transform;
|
package org.alfresco.transform.base.transform;
|
||||||
|
|
||||||
import org.alfresco.transform.base.CustomTransformer;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import org.junit.jupiter.api.Test;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
import org.junit.jupiter.api.io.TempDir;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
import java.io.BufferedOutputStream;
|
import java.io.BufferedOutputStream;
|
||||||
@ -42,14 +42,18 @@ import java.io.IOException;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.Part;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import org.junit.jupiter.api.Test;
|
||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import org.junit.jupiter.api.io.TempDir;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import org.mockito.Mockito;
|
||||||
|
|
||||||
|
import org.alfresco.transform.base.CustomTransformer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests {@link StreamHandler}, {@link TransformManagerImpl#createSourceFile()} and
|
* Tests {@link StreamHandler}, {@link TransformManagerImpl#createSourceFile()} and {@link TransformManagerImpl#createTargetFile()} methods.
|
||||||
* {@link TransformManagerImpl#createTargetFile()} methods.
|
|
||||||
*/
|
*/
|
||||||
public class StreamHandlerTest
|
public class StreamHandlerTest
|
||||||
{
|
{
|
||||||
@ -448,8 +452,7 @@ public class StreamHandlerTest
|
|||||||
|
|
||||||
try (ByteArrayOutputStream os = new ByteArrayOutputStream())
|
try (ByteArrayOutputStream os = new ByteArrayOutputStream())
|
||||||
{
|
{
|
||||||
new FakeStreamHandler()
|
new FakeStreamHandler() {
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void init() throws IOException
|
protected void init() throws IOException
|
||||||
{
|
{
|
||||||
@ -480,8 +483,7 @@ public class StreamHandlerTest
|
|||||||
File sourceFile = tempFile();
|
File sourceFile = tempFile();
|
||||||
write(sourceFile, ORIGINAL);
|
write(sourceFile, ORIGINAL);
|
||||||
|
|
||||||
new FakeStreamHandler()
|
new FakeStreamHandler() {
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected void init() throws IOException
|
protected void init() throws IOException
|
||||||
{
|
{
|
||||||
@ -512,8 +514,7 @@ public class StreamHandlerTest
|
|||||||
File sourceFile = tempFile();
|
File sourceFile = tempFile();
|
||||||
write(sourceFile, ORIGINAL);
|
write(sourceFile, ORIGINAL);
|
||||||
|
|
||||||
new FakeStreamHandler()
|
new FakeStreamHandler() {
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected InputStream getInputStream() throws IOException
|
protected InputStream getInputStream() throws IOException
|
||||||
{
|
{
|
||||||
@ -533,8 +534,7 @@ public class StreamHandlerTest
|
|||||||
{
|
{
|
||||||
File targetFile = tempFile();
|
File targetFile = tempFile();
|
||||||
|
|
||||||
new FakeStreamHandler()
|
new FakeStreamHandler() {
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected InputStream getInputStream()
|
protected InputStream getInputStream()
|
||||||
{
|
{
|
||||||
@ -560,8 +560,7 @@ public class StreamHandlerTest
|
|||||||
{
|
{
|
||||||
try (ByteArrayOutputStream os = new ByteArrayOutputStream())
|
try (ByteArrayOutputStream os = new ByteArrayOutputStream())
|
||||||
{
|
{
|
||||||
new FakeStreamHandler()
|
new FakeStreamHandler() {
|
||||||
{
|
|
||||||
@Override
|
@Override
|
||||||
protected InputStream getInputStream()
|
protected InputStream getInputStream()
|
||||||
{
|
{
|
||||||
@ -576,4 +575,66 @@ public class StreamHandlerTest
|
|||||||
}.handleTransformRequest();
|
}.handleTransformRequest();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testStartWithInputStreamAndCallCreateSourceFileForDocxFiles() throws Exception
|
||||||
|
{
|
||||||
|
try (
|
||||||
|
InputStream in = getSourceInputStreamFromBytes();
|
||||||
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||||
|
OutputStream rec = transformManager.setOutputStream(out))
|
||||||
|
{
|
||||||
|
transformManager.setSourceFileName("test.docx");
|
||||||
|
transformManager.setInputStream(in);
|
||||||
|
|
||||||
|
File src = transformManager.createSourceFile();
|
||||||
|
assertTrue(src.exists());
|
||||||
|
write(rec, read(src) + CHANGE);
|
||||||
|
|
||||||
|
transformManager.copyTargetFileToOutputStream();
|
||||||
|
transformManager.getOutputStream().close();
|
||||||
|
closeInputStreamWithoutException(in);
|
||||||
|
Long outputLength = transformManager.getOutputLength();
|
||||||
|
transformManager.deleteSourceFile();
|
||||||
|
transformManager.deleteTargetFile();
|
||||||
|
|
||||||
|
assertEquals(EXPECTED, read(out));
|
||||||
|
assertEquals(EXPECTED.length(), outputLength);
|
||||||
|
assertFalse(src.exists());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testStartWithInputStreamAndCallCreateSourceFileForDocxFilesWithHttpRequest() throws Exception
|
||||||
|
{
|
||||||
|
try (
|
||||||
|
InputStream in = getSourceInputStreamFromBytes();
|
||||||
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||||
|
OutputStream rec = transformManager.setOutputStream(out))
|
||||||
|
{
|
||||||
|
HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class);
|
||||||
|
Part mockPart = Mockito.mock(Part.class);
|
||||||
|
Mockito.when(mockPart.getSubmittedFileName()).thenReturn("dummy.docx");
|
||||||
|
Mockito.when(mockRequest.getParts()).thenReturn(Arrays.asList(mockPart));
|
||||||
|
|
||||||
|
transformManager.setSourceMimetype("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
|
||||||
|
transformManager.setInputStream(in);
|
||||||
|
transformManager.setRequest(mockRequest);
|
||||||
|
|
||||||
|
File src = transformManager.createSourceFile();
|
||||||
|
assertTrue(src.exists());
|
||||||
|
write(rec, read(src) + CHANGE);
|
||||||
|
|
||||||
|
transformManager.copyTargetFileToOutputStream();
|
||||||
|
transformManager.getOutputStream().close();
|
||||||
|
closeInputStreamWithoutException(in);
|
||||||
|
Long outputLength = transformManager.getOutputLength();
|
||||||
|
transformManager.deleteSourceFile();
|
||||||
|
transformManager.deleteTargetFile();
|
||||||
|
|
||||||
|
assertEquals(EXPECTED, read(out));
|
||||||
|
assertEquals(EXPECTED.length(), outputLength);
|
||||||
|
assertFalse(src.exists());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user