JAMES-2008 data-jmap shoukd not rely on contract tests

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b76a7afd
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b76a7afd
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b76a7afd

Branch: refs/heads/master
Commit: b76a7afd9ee4f2fd0f7a30e5f2f8cfed1c2b74f9
Parents: a9fdb1c
Author: benwa <[email protected]>
Authored: Wed Apr 19 16:06:25 2017 +0700
Committer: Antoine Duprat <[email protected]>
Committed: Wed Apr 26 13:50:10 2017 +0200

----------------------------------------------------------------------
 server/data/data-jmap-cassandra/pom.xml         |  5 ---
 .../CassandraAccessTokenRepositoryTest.java     | 40 +++++++------------
 server/data/data-jmap/pom.xml                   |  5 ---
 .../api/access/AccessTokenRepositoryTest.java   | 41 ++++++++------------
 .../access/MemoryAccessTokenRepositoryTest.java | 30 +++-----------
 5 files changed, 34 insertions(+), 87 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b76a7afd/server/data/data-jmap-cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/server/data/data-jmap-cassandra/pom.xml 
b/server/data/data-jmap-cassandra/pom.xml
index 6500b51..30b55fa 100644
--- a/server/data/data-jmap-cassandra/pom.xml
+++ b/server/data/data-jmap-cassandra/pom.xml
@@ -232,11 +232,6 @@
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-api</artifactId>
                 </dependency>
-                <dependency>
-                    <groupId>org.xenei</groupId>
-                    <artifactId>junit-contracts</artifactId>
-                    <scope>test</scope>
-                </dependency>
             </dependencies>
         </profile>
         <profile>

http://git-wip-us.apache.org/repos/asf/james-project/blob/b76a7afd/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepositoryTest.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepositoryTest.java
 
b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepositoryTest.java
index 20b332f..da5f421 100644
--- 
a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepositoryTest.java
+++ 
b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/access/CassandraAccessTokenRepositoryTest.java
@@ -20,35 +20,21 @@
 package org.apache.james.jmap.cassandra.access;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.jmap.api.access.AccessTokenRepository;
 import org.apache.james.jmap.api.access.AccessTokenRepositoryTest;
-import org.junit.runner.RunWith;
-import org.xenei.junit.contract.Contract;
-import org.xenei.junit.contract.ContractImpl;
-import org.xenei.junit.contract.ContractSuite;
-import org.xenei.junit.contract.IProducer;
+import org.junit.After;
 
-@RunWith(ContractSuite.class)
-@ContractImpl(CassandraAccessTokenRepository.class)
-public class CassandraAccessTokenRepositoryTest {
+public class CassandraAccessTokenRepositoryTest extends 
AccessTokenRepositoryTest {
+    private static final CassandraCluster CLUSTER = 
CassandraCluster.create(new CassandraAccessModule());
 
-    private IProducer<CassandraAccessTokenRepository> producer = new 
IProducer<CassandraAccessTokenRepository>() {
-
-        private CassandraCluster cassandra;
-
-        @Override
-        public CassandraAccessTokenRepository newInstance() {
-            cassandra = CassandraCluster.create(new CassandraAccessModule());
-            return new CassandraAccessTokenRepository(new 
CassandraAccessTokenDAO(cassandra.getConf(), 
AccessTokenRepositoryTest.TTL_IN_MS));
-        }
-
-        @Override
-        public void cleanUp() {
-            cassandra.clearAllTables();
-        }
-    };
-
-    @Contract.Inject
-    public IProducer<CassandraAccessTokenRepository> getProducer() {
-        return producer;
+    @Override
+    protected AccessTokenRepository provideAccessTokenRepository() {
+        return new CassandraAccessTokenRepository(
+            new CassandraAccessTokenDAO(CLUSTER.getConf(), 
AccessTokenRepositoryTest.TTL_IN_MS));
     }
+
+    @After
+    public void tearDown() {
+        CLUSTER.clearAllTables();
+   }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b76a7afd/server/data/data-jmap/pom.xml
----------------------------------------------------------------------
diff --git a/server/data/data-jmap/pom.xml b/server/data/data-jmap/pom.xml
index 51df151..f363e4d 100644
--- a/server/data/data-jmap/pom.xml
+++ b/server/data/data-jmap/pom.xml
@@ -222,11 +222,6 @@
                     <artifactId>slf4j-simple</artifactId>
                     <scope>test</scope>
                 </dependency>
-                <dependency>
-                    <groupId>org.xenei</groupId>
-                    <artifactId>junit-contracts</artifactId>
-                    <scope>test</scope>
-                </dependency>
             </dependencies>
         </profile>
         <profile>

http://git-wip-us.apache.org/repos/asf/james-project/blob/b76a7afd/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/access/AccessTokenRepositoryTest.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/access/AccessTokenRepositoryTest.java
 
b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/access/AccessTokenRepositoryTest.java
index 9914883..b7f6c32 100644
--- 
a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/access/AccessTokenRepositoryTest.java
+++ 
b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/access/AccessTokenRepositoryTest.java
@@ -25,46 +25,37 @@ import static 
org.assertj.core.api.Assertions.assertThatThrownBy;
 import java.util.concurrent.CompletionException;
 
 import org.apache.james.jmap.api.access.exceptions.InvalidAccessToken;
-import org.junit.After;
-import org.xenei.junit.contract.Contract;
-import org.xenei.junit.contract.ContractTest;
-import org.xenei.junit.contract.IProducer;
+import org.junit.Before;
+import org.junit.Test;
 
-@Contract(AccessTokenRepository.class)
-public class AccessTokenRepositoryTest<T extends AccessTokenRepository> {
+public abstract class AccessTokenRepositoryTest {
 
     private static final AccessToken TOKEN = AccessToken.generate();
     private static final String USERNAME = "username";
     public static final long TTL_IN_MS = 1000;
 
-    private IProducer<T> producer;
-
     private AccessTokenRepository accessTokenRepository;
 
-    @Contract.Inject
-    public final void setProducer(IProducer<T> producer) {
-        this.producer = producer;
-        this.accessTokenRepository = producer.newInstance();
-    }
+    protected abstract AccessTokenRepository provideAccessTokenRepository();
 
-    @After
-    public void tearDown() {
-        producer.cleanUp();
+    @Before
+    public final void setUp() {
+        this.accessTokenRepository = provideAccessTokenRepository();
     }
 
-    @ContractTest
+    @Test
     public void validTokenMustBeRetrieved() throws Throwable {
         accessTokenRepository.addToken(USERNAME, TOKEN).join();
         
assertThat(accessTokenRepository.getUsernameFromToken(TOKEN).join()).isEqualTo(USERNAME);
     }
 
-    @ContractTest
+    @Test
     public void absentTokensMustBeInvalid() throws Exception {
         assertThatThrownBy(() -> 
accessTokenRepository.getUsernameFromToken(TOKEN).join()).isInstanceOf(CompletionException.class);
         assertThatThrownBy(() -> 
accessTokenRepository.getUsernameFromToken(TOKEN).join()).hasCauseInstanceOf(InvalidAccessToken.class);
     }
 
-    @ContractTest
+    @Test
     public void removedTokensMustBeInvalid() throws Exception {
         accessTokenRepository.addToken(USERNAME, TOKEN).join();
         accessTokenRepository.removeToken(TOKEN).join();
@@ -72,7 +63,7 @@ public class AccessTokenRepositoryTest<T extends 
AccessTokenRepository> {
         assertThatThrownBy(() -> 
accessTokenRepository.getUsernameFromToken(TOKEN).join()).hasCauseInstanceOf(InvalidAccessToken.class);
     }
 
-    @ContractTest
+    @Test
     public void outDatedTokenMustBeInvalid() throws Exception {
         accessTokenRepository.addToken(USERNAME, TOKEN).join();
         Thread.sleep(2 * TTL_IN_MS);
@@ -80,31 +71,31 @@ public class AccessTokenRepositoryTest<T extends 
AccessTokenRepository> {
         assertThatThrownBy(() -> 
accessTokenRepository.getUsernameFromToken(TOKEN).join()).hasCauseInstanceOf(InvalidAccessToken.class);
     }
 
-    @ContractTest
+    @Test
     public void addTokenMustThrowWhenUsernameIsNull() throws Exception {
         assertThatThrownBy(() -> accessTokenRepository.addToken(null, TOKEN))
             .isInstanceOf(NullPointerException.class);
     }
 
-    @ContractTest
+    @Test
     public void addTokenMustThrowWhenUsernameIsEmpty() throws Exception {
         assertThatThrownBy(() -> accessTokenRepository.addToken("", TOKEN))
             .isInstanceOf(IllegalArgumentException.class);
     }
 
-    @ContractTest
+    @Test
     public void addTokenMustThrowWhenTokenIsNull() throws Exception {
         assertThatThrownBy(() -> accessTokenRepository.addToken(USERNAME, 
null))
             .isInstanceOf(NullPointerException.class);
     }
 
-    @ContractTest
+    @Test
     public void removeTokenTokenMustThrowWhenTokenIsNull() throws Exception {
         assertThatThrownBy(() -> accessTokenRepository.removeToken(null))
             .isInstanceOf(NullPointerException.class);
     }
 
-    @ContractTest
+    @Test
     public void getUsernameFromTokenMustThrowWhenTokenIsNull() throws 
Exception {
         assertThatThrownBy(() -> 
accessTokenRepository.getUsernameFromToken(null))
             .isInstanceOf(NullPointerException.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/b76a7afd/server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepositoryTest.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepositoryTest.java
 
b/server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepositoryTest.java
index 8949a48..6cb063a 100644
--- 
a/server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepositoryTest.java
+++ 
b/server/data/data-jmap/src/test/java/org/apache/james/jmap/memory/access/MemoryAccessTokenRepositoryTest.java
@@ -19,32 +19,12 @@
 
 package org.apache.james.jmap.memory.access;
 
+import org.apache.james.jmap.api.access.AccessTokenRepository;
 import org.apache.james.jmap.api.access.AccessTokenRepositoryTest;
-import org.junit.runner.RunWith;
-import org.xenei.junit.contract.Contract;
-import org.xenei.junit.contract.ContractImpl;
-import org.xenei.junit.contract.ContractSuite;
-import org.xenei.junit.contract.IProducer;
 
-@RunWith(ContractSuite.class)
-@ContractImpl(MemoryAccessTokenRepository.class)
-public class MemoryAccessTokenRepositoryTest {
-
-    private IProducer<MemoryAccessTokenRepository> producer = new 
IProducer<MemoryAccessTokenRepository>() {
-        @Override
-        public MemoryAccessTokenRepository newInstance() {
-            return new 
MemoryAccessTokenRepository(AccessTokenRepositoryTest.TTL_IN_MS);
-        }
-
-        @Override
-        public void cleanUp() {
-
-        }
-    };
-
-    @Contract.Inject
-    public IProducer<MemoryAccessTokenRepository> getProducer() {
-        return producer;
+public class MemoryAccessTokenRepositoryTest extends AccessTokenRepositoryTest 
{
+    @Override
+    protected AccessTokenRepository provideAccessTokenRepository() {
+        return new 
MemoryAccessTokenRepository(AccessTokenRepositoryTest.TTL_IN_MS);
     }
-
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to