aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/signaturelayout/SignatureLayoutHandlerFactoryTests.java
diff options
context:
space:
mode:
Diffstat (limited to 'pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/signaturelayout/SignatureLayoutHandlerFactoryTests.java')
-rw-r--r--pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/signaturelayout/SignatureLayoutHandlerFactoryTests.java131
1 files changed, 131 insertions, 0 deletions
diff --git a/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/signaturelayout/SignatureLayoutHandlerFactoryTests.java b/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/signaturelayout/SignatureLayoutHandlerFactoryTests.java
new file mode 100644
index 0000000..45572bd
--- /dev/null
+++ b/pdf-as-lib/src/test/java/at/knowcenter/wag/egov/egiz/sig/signaturelayout/SignatureLayoutHandlerFactoryTests.java
@@ -0,0 +1,131 @@
+package at.knowcenter.wag.egov.egiz.sig.signaturelayout;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import at.gv.egiz.pdfas.PdfAsFactory;
+import at.gv.egiz.pdfas.api.exceptions.PdfAsException;
+import at.knowcenter.wag.egov.egiz.exceptions.ConnectorException;
+import at.knowcenter.wag.egov.egiz.exceptions.SettingsException;
+import at.knowcenter.wag.egov.egiz.sig.signaturelayout.atrust.ATrustSignatureLayoutHandler;
+import at.knowcenter.wag.egov.egiz.sig.signaturelayout.mocca.MOCCASignatureLayout10Handler;
+import at.knowcenter.wag.egov.egiz.sig.signaturelayout.mocca.MoccaXades14SignatureLayoutHandler;
+import at.knowcenter.wag.egov.egiz.sig.signaturelayout.mocca.OldMOCCASignatureLayoutHandler;
+
+/**
+ * Tests for {@link SignatureLayoutHandlerFactory} providing signature layout handlers for various types of citizen card
+ * software.
+ *
+ * @author Datentechnik Innovation GmbH
+ */
+public class SignatureLayoutHandlerFactoryTests {
+
+ /**
+ * Instantiates the PDF-AS api which will be used for tests.
+ *
+ * @throws PdfAsException
+ * In case the PDF-AS api could not be instantiated (e.g. due to configuration issues).
+ */
+ @BeforeClass
+ public static void init() throws PdfAsException {
+
+ // determine config dir
+ File configFile = new File(SignatureLayoutHandlerFactoryTests.class.getResource(
+ "/at/knowcenter/wag/egov/egiz/signaturelayout/cfg/config.properties").getFile());
+ assertTrue(configFile.exists() && configFile.canRead());
+
+ // determine work dir
+ File workPath = configFile.getParentFile().getParentFile();
+
+ // Note: calculating signature positions without applying signatures is not covered by the api interface.
+ // Therefore we instantiate the api only in order to get the configuration be loaded.
+ PdfAsFactory.createPdfAs(workPath);
+ }
+
+ @Test
+ public void testSupportForMoccaWithXAdES14() throws ConnectorException, SettingsException {
+ String bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.9-SNAPSHOT-r1159-X14 SignatureLayout/1.0";
+ SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ assertTrue(signatureLayoutHandler instanceof MoccaXades14SignatureLayoutHandler);
+
+ bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.9-r1234-X14 SignatureLayout/1.0";
+ signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ assertTrue(signatureLayoutHandler instanceof MoccaXades14SignatureLayoutHandler);
+
+ bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.9-SNAPSHOT-r1159-X14 SignatureLayout/1.1";
+ signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ assertTrue(signatureLayoutHandler instanceof MoccaXades14SignatureLayoutHandler);
+
+ bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.9-r1234-X14 SignatureLayout/1.1";
+ signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ assertTrue(signatureLayoutHandler instanceof MoccaXades14SignatureLayoutHandler);
+ }
+
+ @Test
+ public void testSupportForMoccaWithSignatureLayout10() throws ConnectorException, SettingsException {
+ String bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.8-r1111 SignatureLayout/1.0";
+ SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ assertTrue(signatureLayoutHandler instanceof MOCCASignatureLayout10Handler);
+
+ bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.3.8-r1111 SignatureLayout/1.1";
+ try {
+ SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ fail("ConnectorException expected; SignatureLayout 1.1 not supported.");
+ } catch (ConnectorException e) {
+ assertEquals(373, e.getErrorCode());
+ }
+ }
+
+ @Test
+ public void testSupportForMoccaWithLegacySignatureLayout() throws ConnectorException, SettingsException {
+ String bkuIdentifier = "citizen-card-environment/1.2 MOCCA/1.0.0-r123";
+ SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ assertTrue(signatureLayoutHandler instanceof OldMOCCASignatureLayoutHandler);
+ }
+
+ @Test
+ public void testSupportForATrustLocal133() throws ConnectorException, SettingsException {
+ String bkuIdentifier = "citizen-card-environment/1.2 asignSecurityLayer/1.3.3";
+ SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ assertTrue(signatureLayoutHandler instanceof ATrustSignatureLayoutHandler);
+ }
+
+ @Test
+ public void testNonSupportForATrustLocal140() throws ConnectorException, SettingsException {
+ String bkuIdentifier = "citizen-card-environment/1.2 asignSecurityLayer/1.4.0";
+ try {
+ SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ fail("ConnectorException expected; A.Trust BKU 1.4.0 not supported.");
+ } catch (ConnectorException e) {
+ assertEquals(373, e.getErrorCode());
+ }
+ }
+
+ @Test
+ public void testSupportForATrustLocal141() throws ConnectorException, SettingsException {
+ String bkuIdentifier = "citizen-card-environment/1.2 asignSecurityLayer/1.4.1";
+ SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ assertTrue(signatureLayoutHandler instanceof ATrustSignatureLayoutHandler);
+ }
+
+ @Test
+ public void testSupportForATrustLocal142() throws ConnectorException, SettingsException {
+ String bkuIdentifier = "citizen-card-environment/1.2 asignSecurityLayer/1.4.2";
+ SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ assertTrue(signatureLayoutHandler instanceof ATrustSignatureLayoutHandler);
+ }
+
+ @Test
+ public void testSupportForATrustMobile110() throws ConnectorException, SettingsException {
+ String bkuIdentifier = "citizen-card-environment/1.2 asignMobileBku/1.1.0";
+ SignatureLayoutHandler signatureLayoutHandler = SignatureLayoutHandlerFactory.getSignatureLayoutHandlerInstance(bkuIdentifier);
+ assertTrue(signatureLayoutHandler instanceof ATrustSignatureLayoutHandler);
+ }
+
+}