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(); - } -}