87 lines
3.2 KiB
Java
87 lines
3.2 KiB
Java
package de.pdv.apex;
|
|
|
|
import org.apache.commons.io.IOUtils;
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.mockito.Mock;
|
|
import org.mockito.Mockito;
|
|
import org.mockito.MockitoAnnotations;
|
|
import org.mockito.Spy;
|
|
|
|
import javax.servlet.ServletConfig;
|
|
import javax.servlet.ServletOutputStream;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.io.InputStream;
|
|
import java.io.PrintWriter;
|
|
import java.io.StringWriter;
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
class PdfServletTest extends Mockito {
|
|
@Spy private PdfServlet servlet;
|
|
@Mock private ServletConfig servletConfig;
|
|
@Mock private HttpServletRequest request;
|
|
@Mock private HttpServletResponse response;
|
|
@Mock private ServletOutputStream outputStream;
|
|
|
|
@BeforeEach
|
|
public void setUp() {
|
|
MockitoAnnotations.openMocks(this);
|
|
}
|
|
|
|
@Test
|
|
void assertThatNoMethodHasBeenCalled() {
|
|
when(servlet.getServletConfig()).thenReturn(servletConfig);
|
|
Mockito.verifyNoInteractions(servlet);
|
|
}
|
|
|
|
@Test
|
|
void doGet() throws Exception {
|
|
when(servlet.getServletConfig()).thenReturn(servletConfig);
|
|
when(response.getOutputStream()).thenReturn(outputStream);
|
|
when(response.getWriter()).thenReturn(new PrintWriter(new StringWriter()));
|
|
servlet.doGet(request, response);
|
|
System.out.println("Check for header %PDF-1.4%...");
|
|
byte[] b = {0x25,0x50,0x44,0x46,0x2D,0x31,0x2E,0x34,0x0A}; //
|
|
verify(outputStream, atLeastOnce()).write(b);
|
|
System.out.println("Success!");
|
|
}
|
|
|
|
@Test
|
|
void doPost() throws Exception {
|
|
PdfServletTest app = new PdfServletTest();
|
|
InputStream xsltFile = app.getClass().getClassLoader().getResourceAsStream("samples/kostenblatt_2014.xsl");
|
|
assert xsltFile != null;
|
|
String xsltFileContent = IOUtils.toString(xsltFile, StandardCharsets.UTF_8);
|
|
InputStream xmlFile = app.getClass().getClassLoader().getResourceAsStream("samples/kostenblatt_2014.xml");
|
|
assert xmlFile != null;
|
|
String xmlFileContent = IOUtils.toString(xmlFile, StandardCharsets.UTF_8);
|
|
when(servlet.getServletConfig()).thenReturn(servletConfig);
|
|
when(response.getOutputStream()).thenReturn(outputStream);
|
|
when(request.getParameter("template")).thenReturn(xsltFileContent);
|
|
when(request.getParameter("xml")).thenReturn(xmlFileContent);
|
|
when(response.getWriter()).thenReturn(new PrintWriter(new StringWriter()));
|
|
servlet.doPost(request, response);
|
|
System.out.println("Check for header %PDF-1.4%...");
|
|
byte[] b = {0x25,0x50,0x44,0x46,0x2D,0x31,0x2E,0x34,0x0A}; //
|
|
verify(outputStream, atLeastOnce()).write(b);
|
|
System.out.println("Success!");
|
|
}
|
|
|
|
@Test
|
|
void init() {
|
|
when(servlet.getServletConfig()).thenReturn(servletConfig);
|
|
assertNotNull(servlet);
|
|
servlet.init();
|
|
assertDoesNotThrow( () -> servlet.init());
|
|
}
|
|
|
|
@Test
|
|
void getServletInfo() {
|
|
when(servlet.getServletConfig()).thenReturn(servletConfig);
|
|
String s = servlet.getServletInfo();
|
|
assertEquals("APEX FOP Server",s);
|
|
}
|
|
}
|