ixes for sonarcube ce scan results and new unit test
This commit is contained in:
parent
410a4d5bc8
commit
0858c5f3fe
@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.10.1] - 2022-09-02
|
||||||
|
### Changed
|
||||||
|
- fixes for sonarcube ce scan results
|
||||||
|
- add units tests for servlet with mokito
|
||||||
|
|
||||||
## [0.9.9] - 2022-06-18
|
## [0.9.9] - 2022-06-18
|
||||||
### Changed
|
### Changed
|
||||||
- automated github release build
|
- automated github release build
|
||||||
|
|||||||
67
pom.xml
67
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>de.pdv.apex</groupId>
|
<groupId>de.pdv.apex</groupId>
|
||||||
<artifactId>fop4apex</artifactId>
|
<artifactId>fop4apex</artifactId>
|
||||||
<version>0.9.10-SNAPSHOT</version>
|
<version>0.10.1-SNAPSHOT</version>
|
||||||
<name>fop4apex</name>
|
<name>fop4apex</name>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
<url>https://www.pdv.de</url>
|
<url>https://www.pdv.de</url>
|
||||||
@ -25,6 +25,12 @@
|
|||||||
<version>4.0.1</version>
|
<version>4.0.1</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.13.2</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.junit.jupiter</groupId>
|
<groupId>org.junit.jupiter</groupId>
|
||||||
<artifactId>junit-jupiter-api</artifactId>
|
<artifactId>junit-jupiter-api</artifactId>
|
||||||
@ -44,6 +50,14 @@
|
|||||||
<version>2.0.26</version>
|
<version>2.0.26</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- https://mvnrepository.com/artifact/org.mockito/mockito-core -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mockito</groupId>
|
||||||
|
<artifactId>mockito-core</artifactId>
|
||||||
|
<version>4.7.0</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/fop-core -->
|
<!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/fop-core -->
|
||||||
<dependency>
|
<dependency>
|
||||||
@ -104,22 +118,6 @@
|
|||||||
<version>3.3.2</version>
|
<version>3.3.2</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/org.owasp/dependency-check-maven -->
|
|
||||||
<!--
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.owasp</groupId>
|
|
||||||
<artifactId>dependency-check-maven</artifactId>
|
|
||||||
<version>7.1.1</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<goals>
|
|
||||||
<goal>check</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin -->
|
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin -->
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
@ -157,24 +155,23 @@
|
|||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/com.google.cloud.tools/jib-maven-plugin -->
|
<!-- https://mvnrepository.com/artifact/com.google.cloud.tools/jib-maven-plugin -->
|
||||||
<!--
|
<plugin>
|
||||||
<plugin>
|
<groupId>com.google.cloud.tools</groupId>
|
||||||
<groupId>com.google.cloud.tools</groupId>
|
<artifactId>jib-maven-plugin</artifactId>
|
||||||
<artifactId>jib-maven-plugin</artifactId>
|
<version>3.2.1</version>
|
||||||
<version>3.2.1</version>
|
<configuration>
|
||||||
<configuration>
|
<from>
|
||||||
<from>
|
<image>compile.pdv.lan:8001/product/base/vis-tomcat:9.0</image>
|
||||||
<image>compile.pdv.lan:8001/product/base/vis-tomcat:9.0</image>
|
</from>
|
||||||
</from>
|
<to>
|
||||||
<to>
|
<image>fop4apex</image>
|
||||||
<image>fop4apex</image>
|
</to>
|
||||||
</to>
|
<container>
|
||||||
<container>
|
<appRoot>/opt/pdv/webapps/fop4apex</appRoot>
|
||||||
<appRoot>/opt/pdv/webapps/fop4apex</appRoot>
|
</container>
|
||||||
</container>
|
</configuration>
|
||||||
</configuration>
|
</plugin>
|
||||||
</plugin>
|
|
||||||
-->
|
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
|
|||||||
@ -3,10 +3,9 @@ package de.pdv.apex;
|
|||||||
import org.apache.fop.apps.FOUserAgent;
|
import org.apache.fop.apps.FOUserAgent;
|
||||||
import org.apache.fop.apps.Fop;
|
import org.apache.fop.apps.Fop;
|
||||||
import org.apache.fop.apps.FopFactory;
|
import org.apache.fop.apps.FopFactory;
|
||||||
import org.apache.fop.apps.MimeConstants;
|
import static org.apache.xmlgraphics.util.MimeConstants.MIME_PDF;
|
||||||
|
|
||||||
import javax.servlet.ServletContext;
|
import javax.servlet.ServletContext;
|
||||||
import javax.servlet.ServletException;
|
|
||||||
import javax.servlet.annotation.WebServlet;
|
import javax.servlet.annotation.WebServlet;
|
||||||
import javax.servlet.http.HttpServlet;
|
import javax.servlet.http.HttpServlet;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@ -17,7 +16,9 @@ import javax.xml.transform.Transformer;
|
|||||||
import javax.xml.transform.TransformerFactory;
|
import javax.xml.transform.TransformerFactory;
|
||||||
import javax.xml.transform.sax.SAXResult;
|
import javax.xml.transform.sax.SAXResult;
|
||||||
import javax.xml.transform.stream.StreamSource;
|
import javax.xml.transform.stream.StreamSource;
|
||||||
import java.io.*;
|
import java.io.File;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.StringReader;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
@ -31,9 +32,6 @@ public class PdfServlet extends HttpServlet {
|
|||||||
|
|
||||||
private final TransformerFactory tFactory = TransformerFactory.newInstance();
|
private final TransformerFactory tFactory = TransformerFactory.newInstance();
|
||||||
|
|
||||||
public void init() {
|
|
||||||
}
|
|
||||||
|
|
||||||
// <editor-fold default state="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
|
// <editor-fold default state="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -43,8 +41,7 @@ public class PdfServlet extends HttpServlet {
|
|||||||
* @param response servlet response
|
* @param response servlet response
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
|
||||||
throws ServletException {
|
|
||||||
logger.log(Level.FINEST,"Finest output");
|
logger.log(Level.FINEST,"Finest output");
|
||||||
logger.log(Level.FINER,"Finer output");
|
logger.log(Level.FINER,"Finer output");
|
||||||
logger.log(Level.FINE,"Fine output");
|
logger.log(Level.FINE,"Fine output");
|
||||||
@ -52,9 +49,8 @@ public class PdfServlet extends HttpServlet {
|
|||||||
logger.log(Level.INFO,"doGet");
|
logger.log(Level.INFO,"doGet");
|
||||||
try {
|
try {
|
||||||
response.setContentType("application/pdf");
|
response.setContentType("application/pdf");
|
||||||
// response.setDateHeader("Expires", System.currentTimeMillis() + cacheExpiringDuration * 1000);
|
|
||||||
FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI());
|
FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI());
|
||||||
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, response.getOutputStream());
|
Fop fop = fopFactory.newFop(MIME_PDF, response.getOutputStream());
|
||||||
Transformer transformer = tFactory.newTransformer();
|
Transformer transformer = tFactory.newTransformer();
|
||||||
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("samples/helloWorld.fo");
|
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("samples/helloWorld.fo");
|
||||||
Source src = new StreamSource(inputStream);
|
Source src = new StreamSource(inputStream);
|
||||||
@ -62,21 +58,18 @@ public class PdfServlet extends HttpServlet {
|
|||||||
transformer.transform(src, res);
|
transformer.transform(src, res);
|
||||||
logger.log(Level.INFO,"Process complete");
|
logger.log(Level.INFO,"Process complete");
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
throw new ServletException(ex);
|
logger.log(Level.SEVERE,String.format("Error while processing fop transformation %s", ex.getMessage()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the HTTP <code>POST</code> method.
|
* Handles the HTTP <code>POST</code> method.
|
||||||
*
|
*
|
||||||
* @param request servlet request
|
* @param request servlet request
|
||||||
* @param response servlet response
|
* @param response servlet response
|
||||||
* @throws ServletException if a servlet-specific error occurs
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
|
||||||
throws ServletException {
|
|
||||||
ServletContext context = getServletContext();
|
ServletContext context = getServletContext();
|
||||||
logger.log(Level.FINEST,"Finest output");
|
logger.log(Level.FINEST,"Finest output");
|
||||||
logger.log(Level.FINER,"Finer output");
|
logger.log(Level.FINER,"Finer output");
|
||||||
@ -87,29 +80,30 @@ public class PdfServlet extends HttpServlet {
|
|||||||
String contentType = request.getContentType();
|
String contentType = request.getContentType();
|
||||||
String templateFile = "template.fo";
|
String templateFile = "template.fo";
|
||||||
String templateData = "xml data";
|
String templateData = "xml data";
|
||||||
// String pdfFileName = "";
|
|
||||||
|
|
||||||
if (request.getParameter("template") != null)
|
if (request.getParameter("template") != null)
|
||||||
templateFile = request.getParameter("template");
|
templateFile = request.getParameter("template");
|
||||||
if (request.getParameter("xml") != null)
|
if (request.getParameter("xml") != null)
|
||||||
templateData = request.getParameter("xml");
|
templateData = request.getParameter("xml");
|
||||||
logger.log(Level.FINEST,"Working directory: " + (new File("dummy1.txt")).getAbsolutePath());
|
|
||||||
logger.log(Level.FINEST,"Template file: " + templateFile);
|
if (logger.isLoggable(Level.FINEST)) {
|
||||||
logger.log(Level.FINEST,"Template data: " + templateData);
|
logger.log(Level.FINEST, String.format("Working directory: %s", new File("dummy1.txt").getAbsolutePath()));
|
||||||
logger.log(Level.FINEST,"Content type: " + contentType);
|
logger.log(Level.FINEST, String.format("Template file: %s", templateFile));
|
||||||
|
logger.log(Level.FINEST, String.format("Template data: %s", templateData));
|
||||||
|
logger.log(Level.FINEST, String.format("Content type: %s", contentType));
|
||||||
|
}
|
||||||
|
|
||||||
String pdfFileName = "Kostenblatt.pdf";
|
String pdfFileName = "Kostenblatt.pdf";
|
||||||
response.setContentType("application/pdf");
|
response.setContentType("application/pdf");
|
||||||
response.setHeader("Content-disposition", "attachment; filename=" + pdfFileName);
|
response.setHeader("Content-disposition", "attachment; filename=" + pdfFileName);
|
||||||
// response.setDateHeader("Expires", System.currentTimeMillis() + cacheExpiringDuration * 1000);
|
|
||||||
FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI());
|
FopFactory fopFactory = FopFactory.newInstance(new File(".").toURI());
|
||||||
|
|
||||||
FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
|
FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
|
||||||
// Construct fop with desired output format
|
// Construct fop with desired output format
|
||||||
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, response.getOutputStream());
|
Fop fop = fopFactory.newFop(MIME_PDF, foUserAgent, response.getOutputStream());
|
||||||
|
|
||||||
// Setup XSLT
|
Transformer transformer = tFactory.newTransformer( new StreamSource(new StringReader(templateFile)));
|
||||||
TransformerFactory factory = TransformerFactory.newInstance();
|
|
||||||
Transformer transformer = factory.newTransformer( new StreamSource(new StringReader(templateFile)));
|
|
||||||
// Set the value of a <param> in the stylesheet
|
// Set the value of a <param> in the stylesheet
|
||||||
transformer.setParameter("versionParam", "2.0");
|
transformer.setParameter("versionParam", "2.0");
|
||||||
|
|
||||||
@ -123,11 +117,10 @@ public class PdfServlet extends HttpServlet {
|
|||||||
transformer.transform(src, res);
|
transformer.transform(src, res);
|
||||||
logger.log(Level.INFO,"Process complete");
|
logger.log(Level.INFO,"Process complete");
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception ex) {
|
||||||
context.log(e.getMessage(), e);
|
context.log(ex.getMessage(), ex);
|
||||||
throw new ServletException(e.getMessage());
|
logger.log(Level.SEVERE,String.format("Error while processing fop transformation %s", ex.getMessage()));
|
||||||
}
|
}
|
||||||
// processRequest(request, response);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -140,8 +133,4 @@ public class PdfServlet extends HttpServlet {
|
|||||||
return "APEX FOP Server";
|
return "APEX FOP Server";
|
||||||
}// </editor-fold>
|
}// </editor-fold>
|
||||||
|
|
||||||
@Override
|
|
||||||
public void destroy() {
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -9,23 +9,19 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<main class="container">
|
<main class="container">
|
||||||
<hgroup>
|
<header>
|
||||||
<h1>Apache FOP integration for Oracle APEX</h1>
|
<h1>Apache FOP integration for Oracle APEX</h1>
|
||||||
<h2>FOP = Formatting Objects Processor</h2>
|
<p>FOP = Formatting Objects Processor</p>
|
||||||
</hgroup>
|
</header>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Demo: <a href="pdf" data-tooltip="Run pdf servlet with demo data">pdf servlet / fo2pdf</a></li>
|
<li>Demo: <a href="pdf" data-tooltip="Run pdf servlet with demo data">pdf servlet / fo2pdf</a></li>
|
||||||
<li>Monitoring: <a href="monitoring" data-tooltip="Go to JavaMelody Monitoring page">JavaMelody</a></li>
|
<li>Monitoring: <a href="monitoring" data-tooltip="Go to JavaMelody Monitoring page">JavaMelody</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<header>
|
||||||
<!-- <a href="pdf">pdf Servlet / Hello World / fo2pdf</a><br/> -->
|
|
||||||
<%--suppress HtmlUnknownTarget --%>
|
|
||||||
<!-- <a href="monitoring">JavaMelody Monitoring</a> -->
|
|
||||||
<hgroup>
|
|
||||||
<h2>Sample APEX Settings</h2>
|
<h2>Sample APEX Settings</h2>
|
||||||
<h3>Internal Workspace / Instance Settings / Report Printing</h3>
|
</header>
|
||||||
</hgroup>
|
|
||||||
<table role="grid">
|
<table role="grid">
|
||||||
|
<caption>Internal Workspace / Instance Settings / Report Printing</caption>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Parameter</th>
|
<th scope="col">Parameter</th>
|
||||||
@ -58,10 +54,10 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<hgroup>
|
<header>
|
||||||
<h2>Debugging</h2>
|
<h2>Debugging</h2>
|
||||||
<h3>Add to tomcat conf/logging.properties</h3>
|
<p>Add to tomcat conf/logging.properties</p>
|
||||||
</hgroup>
|
</header>
|
||||||
<pre>org.apache.tomcat.util.http.Parameters.level = ALL
|
<pre>org.apache.tomcat.util.http.Parameters.level = ALL
|
||||||
de.pdv.apex.level = ALL</pre>
|
de.pdv.apex.level = ALL</pre>
|
||||||
|
|
||||||
|
|||||||
@ -4,8 +4,10 @@ import org.apache.fop.apps.*;
|
|||||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||||
import org.apache.pdfbox.text.PDFTextStripper;
|
import org.apache.pdfbox.text.PDFTextStripper;
|
||||||
import org.apache.pdfbox.text.PDFTextStripperByArea;
|
import org.apache.pdfbox.text.PDFTextStripperByArea;
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import javax.xml.XMLConstants;
|
||||||
import javax.xml.transform.Result;
|
import javax.xml.transform.Result;
|
||||||
import javax.xml.transform.Source;
|
import javax.xml.transform.Source;
|
||||||
import javax.xml.transform.Transformer;
|
import javax.xml.transform.Transformer;
|
||||||
@ -46,6 +48,7 @@ class ExampleFO2PDFTest {
|
|||||||
|
|
||||||
// Setup JAXP using identity transformer
|
// Setup JAXP using identity transformer
|
||||||
TransformerFactory factory = TransformerFactory.newInstance();
|
TransformerFactory factory = TransformerFactory.newInstance();
|
||||||
|
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
|
||||||
Transformer transformer = factory.newTransformer(); // identity transformer
|
Transformer transformer = factory.newTransformer(); // identity transformer
|
||||||
|
|
||||||
// Setup input stream
|
// Setup input stream
|
||||||
@ -106,17 +109,18 @@ class ExampleFO2PDFTest {
|
|||||||
throw new Exception("result file missing");
|
throw new Exception("result file missing");
|
||||||
|
|
||||||
try (PDDocument document = PDDocument.load(pdfFile)) {
|
try (PDDocument document = PDDocument.load(pdfFile)) {
|
||||||
document.getClass();
|
//document.getClass();
|
||||||
if (!document.isEncrypted()) {
|
if (!document.isEncrypted()) {
|
||||||
PDFTextStripperByArea stripper = new PDFTextStripperByArea();
|
PDFTextStripperByArea stripper = new PDFTextStripperByArea();
|
||||||
stripper.setSortByPosition(true);
|
stripper.setSortByPosition(true);
|
||||||
PDFTextStripper tStripper = new PDFTextStripper();
|
PDFTextStripper tStripper = new PDFTextStripper();
|
||||||
String pdfFileInText = tStripper.getText(document);
|
String pdfFileInText = tStripper.getText(document);
|
||||||
String lines[] = pdfFileInText.split("\\r?\\n");
|
String[] lines = pdfFileInText.split("\\r?\\n");
|
||||||
for (String line : lines) {
|
for (String line : lines) {
|
||||||
System.out.println(line);
|
System.out.println(line);
|
||||||
}
|
}
|
||||||
System.out.println("Pages: " + document.getNumberOfPages());
|
System.out.println("Pages: " + document.getNumberOfPages());
|
||||||
|
Assertions.assertEquals(Integer.valueOf(1).intValue(), document.getNumberOfPages());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("Filesize (Bytes): " + Files.size(pdfFile.toPath()));
|
System.out.println("Filesize (Bytes): " + Files.size(pdfFile.toPath()));
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import org.apache.fop.apps.Fop;
|
|||||||
import org.apache.fop.apps.FopFactory;
|
import org.apache.fop.apps.FopFactory;
|
||||||
import org.apache.fop.apps.MimeConstants;
|
import org.apache.fop.apps.MimeConstants;
|
||||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import javax.xml.transform.Result;
|
import javax.xml.transform.Result;
|
||||||
@ -82,6 +83,7 @@ class ExampleXML2PDFTest {
|
|||||||
PDDocument document = PDDocument.load(pdfFile);
|
PDDocument document = PDDocument.load(pdfFile);
|
||||||
System.out.println("Pages: " + document.getNumberOfPages());
|
System.out.println("Pages: " + document.getNumberOfPages());
|
||||||
System.out.println("Filesize (Bytes): " + Files.size(pdfFile.toPath()));
|
System.out.println("Filesize (Bytes): " + Files.size(pdfFile.toPath()));
|
||||||
|
Assertions.assertEquals(Integer.valueOf(1).intValue(), document.getNumberOfPages());
|
||||||
System.out.println("Success!");
|
System.out.println("Success!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
70
src/test/java/de/pdv/apex/PdfServletTest.java
Normal file
70
src/test/java/de/pdv/apex/PdfServletTest.java
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
package de.pdv.apex;
|
||||||
|
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.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;
|
||||||
|
|
||||||
|
public class PdfServletTest extends Mockito {
|
||||||
|
@Spy private PdfServlet servlet;
|
||||||
|
@Mock private ServletConfig servletConfig;
|
||||||
|
@Mock private HttpServletRequest request;
|
||||||
|
@Mock private HttpServletResponse response;
|
||||||
|
@Mock private ServletOutputStream outputStream;
|
||||||
|
@Before
|
||||||
|
public void setUp() {
|
||||||
|
MockitoAnnotations.openMocks(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void assertThatNoMethodHasBeenCalled() {
|
||||||
|
when(servlet.getServletConfig()).thenReturn(servletConfig);
|
||||||
|
Mockito.verifyNoInteractions(servlet);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testServletGet() 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
|
||||||
|
public void testServletPost() 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.name());
|
||||||
|
InputStream xmlFile = app.getClass().getClassLoader().getResourceAsStream("samples/kostenblatt_2014.xml");
|
||||||
|
assert xmlFile != null;
|
||||||
|
String xmlFileContent = IOUtils.toString(xmlFile, StandardCharsets.UTF_8.name());
|
||||||
|
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!");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user