From 8dea70baa540d0c51d704fc2437f39daeffd861d Mon Sep 17 00:00:00 2001
From: chris-j-h <39617426+chris-j-h@users.noreply.github.com>
Date: Mon, 20 Jan 2020 13:44:49 +0000
Subject: [PATCH] Enable some previously disabled longer running tests (#974)
* Enable integration tests
* jnacl and kalium (only run when corresponding profile is active)
* jnacl encrypt and decrypt
* Remove CoreIT, enable jersey server ITs, undo grpc-related exclusions
---
config/pom.xml | 17 +++-
.../tessera/config/keys/KeyEncryptorIT.java | 98 ++++++++++---------
encryption/encryption-jnacl/pom.xml | 19 +++-
encryption/encryption-kalium/pom.xml | 17 ++++
server/jaxrs-client-unixsocket/pom.xml | 22 ++++-
server/jersey-server/pom.xml | 55 ++++-------
.../java/com/quorum/tessera/core/CoreIT.java | 38 -------
7 files changed, 138 insertions(+), 128 deletions(-)
delete mode 100644 tessera-core/src/test/java/com/quorum/tessera/core/CoreIT.java
diff --git a/config/pom.xml b/config/pom.xml
index d90eb3afe0..e60f780e12 100644
--- a/config/pom.xml
+++ b/config/pom.xml
@@ -57,7 +57,7 @@
com.jpmorgan.quorum
encryption-jnacl
-
+
com.jpmorgan.quorum
encryption-ec
@@ -97,10 +97,21 @@
-
-
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+
+
+ integration-test
+ verify
+
+
+
+
diff --git a/config/src/test/java/com/quorum/tessera/config/keys/KeyEncryptorIT.java b/config/src/test/java/com/quorum/tessera/config/keys/KeyEncryptorIT.java
index 963d8e0c57..866c38d9c0 100644
--- a/config/src/test/java/com/quorum/tessera/config/keys/KeyEncryptorIT.java
+++ b/config/src/test/java/com/quorum/tessera/config/keys/KeyEncryptorIT.java
@@ -1,46 +1,52 @@
-//package com.quorum.tessera.keyenc;
-//
-//import Argon2;
-//import Key;
-//import NaclFacade;
-//import NaclFacadeFactory;
-//import org.assertj.core.api.Assertions;
-//import org.junit.Before;
-//import org.junit.Test;
-//
-//import javax.json.JsonObject;
-//import java.util.Base64;
-//
-//public class KeyEncryptorIT {
-//
-// private static final String pkeyBase64 = "kwMSmHpIhCFFoOCyGkHkJyfLVxsa9Mj3Y23sFYRLwLM=";
-//
-// private static final String password = "PASS_WORD";
-//
-// private KeyEncryptor keyEncryptor;
-//
-// private Key privateKey;
-//
-// @Before
-// public void init() {
-//
-// final NaclFacade nacl = NaclFacadeFactory.newFactory().create();
-// final Argon2 argon2 = Argon2.create();
-//
-// this.privateKey = new Key(Base64.getDecoder().decode(pkeyBase64));
-//
-// this.keyEncryptor = new KeyEncryptorImpl(argon2, nacl);
-// }
-//
-// @Test
-// public void encryptAndDecryptOnKeyIsSuccessful() {
-//
-// final JsonObject jsonObject = keyEncryptor.encryptPrivateKey(privateKey, password);
-//
-// final Key decryptedKey = keyEncryptor.decryptPrivateKey(jsonObject, password);
-//
-// Assertions.assertThat(decryptedKey).isEqualTo(privateKey);
-//
-// }
-//
-//}
+package com.quorum.tessera.config.keys;
+
+import com.quorum.tessera.config.ArgonOptions;
+import com.quorum.tessera.config.EncryptorConfig;
+import com.quorum.tessera.config.EncryptorType;
+import com.quorum.tessera.config.PrivateKeyData;
+import com.quorum.tessera.encryption.PrivateKey;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Base64;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class KeyEncryptorIT {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(KeyEncryptorIT.class);
+
+ private static final String pkeyBase64 = "kwMSmHpIhCFFoOCyGkHkJyfLVxsa9Mj3Y23sFYRLwLM=";
+
+ private static final String password = "PASS_WORD";
+
+ private KeyEncryptor keyEncryptor;
+
+ private PrivateKey privateKey;
+
+ @Before
+ public void init() {
+ this.privateKey = PrivateKey.from(Base64.getDecoder().decode(pkeyBase64));
+
+ this.keyEncryptor =
+ KeyEncryptorFactory.newFactory()
+ .create(
+ new EncryptorConfig() {
+ {
+ setType(EncryptorType.NACL);
+ }
+ });
+ }
+
+ @Test
+ public void encryptAndDecryptOnKeyIsSuccessful() {
+ ArgonOptions argonOptions = new ArgonOptions("i", 10, 1048576, 4);
+
+ final PrivateKeyData privateKeyData = keyEncryptor.encryptPrivateKey(privateKey, password, argonOptions);
+ final PrivateKey decryptedKey = keyEncryptor.decryptPrivateKey(privateKeyData, password);
+
+ assertThat(decryptedKey).isEqualTo(privateKey);
+ }
+}
diff --git a/encryption/encryption-jnacl/pom.xml b/encryption/encryption-jnacl/pom.xml
index b5cf41cf7c..7468b0faea 100644
--- a/encryption/encryption-jnacl/pom.xml
+++ b/encryption/encryption-jnacl/pom.xml
@@ -41,7 +41,7 @@
-
+
kalium
@@ -51,4 +51,21 @@
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+
+
diff --git a/encryption/encryption-kalium/pom.xml b/encryption/encryption-kalium/pom.xml
index 6619458296..bb99c22465 100644
--- a/encryption/encryption-kalium/pom.xml
+++ b/encryption/encryption-kalium/pom.xml
@@ -55,4 +55,21 @@
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+
+
diff --git a/server/jaxrs-client-unixsocket/pom.xml b/server/jaxrs-client-unixsocket/pom.xml
index 2a92c19a25..0345d748e8 100644
--- a/server/jaxrs-client-unixsocket/pom.xml
+++ b/server/jaxrs-client-unixsocket/pom.xml
@@ -15,7 +15,7 @@
javax.ws.rs
javax.ws.rs-api
-
+
org.eclipse.jetty
jetty-unixsocket
@@ -50,6 +50,22 @@
-
-
+
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+
+
diff --git a/server/jersey-server/pom.xml b/server/jersey-server/pom.xml
index ff6c935108..aa5607bcba 100644
--- a/server/jersey-server/pom.xml
+++ b/server/jersey-server/pom.xml
@@ -8,7 +8,7 @@
server
0.11-SNAPSHOT
-
+
jersey-server
jersey-server
@@ -22,14 +22,14 @@
grizzly-http-servlet
2.4.3.1
-
+
com.sun.mail
javax.mail
1.6.2
-
+
@@ -58,12 +58,6 @@
org.glassfish.jersey.core
jersey-server
-
-
- org.glassfish.hk2.external
- javax.inject
-
-
@@ -74,10 +68,6 @@
org.glassfish.web
javax.el
-
- org.glassfish.hk2.external
- javax.inject
-
javax.el
javax.el-api
@@ -94,12 +84,6 @@
org.glassfish.jersey.containers
jersey-container-servlet-core
-
-
- org.glassfish.hk2.external
- javax.inject
-
-
@@ -121,31 +105,15 @@
org.eclipse.jetty
jetty-servlet
-
+
org.glassfish.jersey.inject
jersey-hk2
-
-
- org.glassfish.hk2.external
- javax.inject
-
-
- javax.inject
- javax.inject
-
-
-
+
org.glassfish.jersey.core
jersey-common
-
-
- org.glassfish.hk2.external
- javax.inject
-
-
@@ -164,6 +132,19 @@
true
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+
+
+ integration-test
+ verify
+
+
+
+
diff --git a/tessera-core/src/test/java/com/quorum/tessera/core/CoreIT.java b/tessera-core/src/test/java/com/quorum/tessera/core/CoreIT.java
deleted file mode 100644
index ab9d23c33a..0000000000
--- a/tessera-core/src/test/java/com/quorum/tessera/core/CoreIT.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.quorum.tessera.core;
-
-import com.quorum.tessera.transaction.TransactionManager;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import javax.inject.Inject;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-@RunWith(SpringRunner.class)
-@ContextConfiguration(locations = "classpath:tessera-core-spring.xml")
-public class CoreIT {
-
- @Inject private TransactionManager transactionManager;
-
- @PersistenceContext(unitName = "tessera")
- private EntityManager entityManager;
-
- @BeforeClass
- public static void onSetup() throws Exception {
- String configPath = CoreIT.class.getResource("/config1.json").getPath();
- // TODO(cjh) introduces a circular dependency between jaxrs-client module and picocli module
- // PicoCliDelegate picoCliDelegate = new PicoCliDelegate();
- // picoCliDelegate.execute("-configfile", configPath);
- }
-
- @Test
- public void doStuff() throws Exception {
- assertThat(transactionManager).isNotNull();
- assertThat(entityManager).isNotNull();
- }
-}