You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2015/11/02 14:37:03 UTC

svn commit: r1711965 - in /james/project/trunk/server: ./ data/data-file/ data/data-file/src/test/java/org/apache/james/rrt/file/ data/data-hbase/ data/data-hbase/src/test/java/org/apache/james/rrt/hbase/ data/data-jdbc/ data/data-jdbc/src/test/java/or...

Author: matthieu
Date: Mon Nov  2 13:37:02 2015
New Revision: 1711965

URL: http://svn.apache.org/viewvc?rev=1711965&view=rev
Log:
JAMES-1594 First test on empty mapping

Modified:
    james/project/trunk/server/data/data-file/pom.xml
    james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
    james/project/trunk/server/data/data-hbase/pom.xml
    james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java
    james/project/trunk/server/data/data-jdbc/pom.xml
    james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java
    james/project/trunk/server/data/data-jpa/pom.xml
    james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java
    james/project/trunk/server/data/data-library/pom.xml
    james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
    james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
    james/project/trunk/server/pom.xml

Modified: james/project/trunk/server/data/data-file/pom.xml
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/pom.xml?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/data/data-file/pom.xml (original)
+++ james/project/trunk/server/data/data-file/pom.xml Mon Nov  2 13:37:02 2015
@@ -96,11 +96,21 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>info.cukes</groupId>
+            <artifactId>cucumber-picocontainer</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.james</groupId>
             <artifactId>james-server-data-library</artifactId>
             <type>test-jar</type>

Modified: james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java (original)
+++ james/project/trunk/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java Mon Nov  2 13:37:02 2015
@@ -18,13 +18,28 @@
  ****************************************************************/
 package org.apache.james.rrt.file;
 
-import cucumber.api.java.en.Given;
+import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.RewriteTablesStepdefs;
+import org.slf4j.LoggerFactory;
 
-public class XMLStepdefs{
+import cucumber.api.java.Before;
 
-    @Given("perform backend setup")
-    public void given() throws Throwable {
-        System.out.println("XML");
+public class XMLStepdefs {
+
+    private RewriteTablesStepdefs mainStepdefs;
+
+    public XMLStepdefs(RewriteTablesStepdefs mainStepdefs) {
+        this.mainStepdefs = mainStepdefs;
     }
 
+    @Before
+    public void setup() throws Throwable {
+        mainStepdefs.rewriteTable = getRecipientRewriteTable(); 
+    }
+
+    private AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
+        XMLRecipientRewriteTable localVirtualUserTable = new XMLRecipientRewriteTable();
+        localVirtualUserTable.setLog(LoggerFactory.getLogger("MockLog"));
+        return localVirtualUserTable;
+    }
 }

Modified: james/project/trunk/server/data/data-hbase/pom.xml
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/pom.xml?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/data/data-hbase/pom.xml (original)
+++ james/project/trunk/server/data/data-hbase/pom.xml Mon Nov  2 13:37:02 2015
@@ -114,11 +114,21 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>info.cukes</groupId>
+            <artifactId>cucumber-picocontainer</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.james</groupId>
             <artifactId>james-server-data-library</artifactId>
             <type>test-jar</type>

Modified: james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java (original)
+++ james/project/trunk/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java Mon Nov  2 13:37:02 2015
@@ -18,13 +18,43 @@
  ****************************************************************/
 package org.apache.james.rrt.hbase;
 
-import cucumber.api.java.en.Given;
+import java.io.IOException;
 
-public class HBaseStepdefs{
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
+import org.apache.james.mailbox.hbase.HBaseClusterSingleton;
+import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.RewriteTablesStepdefs;
+import org.apache.james.system.hbase.TablePool;
+import org.slf4j.LoggerFactory;
 
-    @Given("perform backend setup")
-    public void given() throws Throwable {
-        System.out.println("HBase");
+import com.google.common.base.Throwables;
+
+import cucumber.api.java.Before;
+
+public class HBaseStepdefs {
+
+    private static final HBaseClusterSingleton cluster = HBaseClusterSingleton.build();
+
+    private RewriteTablesStepdefs mainStepdefs;
+
+    public HBaseStepdefs(RewriteTablesStepdefs mainStepdefs) {
+        try {
+            this.mainStepdefs = mainStepdefs;
+            TablePool.getInstance(cluster.getConf());
+        } catch (IOException e) {
+            Throwables.propagate(e);
+        }
+    }
+
+    @Before
+    public void setup() throws Throwable {
+        mainStepdefs.rewriteTable = getRecipientRewriteTable(); 
     }
 
+    private AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
+        HBaseRecipientRewriteTable rrt = new HBaseRecipientRewriteTable();
+        rrt.setLog(LoggerFactory.getLogger("MockLog"));
+        rrt.configure(new DefaultConfigurationBuilder());
+        return rrt;
+    }
 }

Modified: james/project/trunk/server/data/data-jdbc/pom.xml
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jdbc/pom.xml?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/data/data-jdbc/pom.xml (original)
+++ james/project/trunk/server/data/data-jdbc/pom.xml Mon Nov  2 13:37:02 2015
@@ -101,11 +101,21 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>info.cukes</groupId>
+            <artifactId>cucumber-picocontainer</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.james</groupId>
             <artifactId>james-server-data-library</artifactId>
             <type>test-jar</type>

Modified: james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java (original)
+++ james/project/trunk/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java Mon Nov  2 13:37:02 2015
@@ -18,13 +18,48 @@
  ****************************************************************/
 package org.apache.james.rrt.jdbc;
 
-import cucumber.api.java.en.Given;
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
+import org.apache.commons.dbcp.BasicDataSource;
+import org.apache.derby.jdbc.EmbeddedDriver;
+import org.apache.james.filesystem.api.mock.MockFileSystem;
+import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.RewriteTablesStepdefs;
+import org.slf4j.LoggerFactory;
 
-public class JDBCStepdefs{
+import cucumber.api.java.Before;
 
-    @Given("perform backend setup")
-    public void given() throws Throwable {
-        System.out.println("JDBC");
+public class JDBCStepdefs {
+
+    private RewriteTablesStepdefs mainStepdefs;
+
+    public JDBCStepdefs(RewriteTablesStepdefs mainStepdefs) {
+        this.mainStepdefs = mainStepdefs;
+    }
+
+    @Before
+    public void setup() throws Throwable {
+        mainStepdefs.rewriteTable = getRecipientRewriteTable(); 
     }
 
+    protected AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
+        JDBCRecipientRewriteTable localVirtualUserTable = new JDBCRecipientRewriteTable();
+        localVirtualUserTable.setLog(LoggerFactory.getLogger("MockLog"));
+        localVirtualUserTable.setDataSource(getDataSource());
+        localVirtualUserTable.setFileSystem(new MockFileSystem());
+        DefaultConfigurationBuilder defaultConfiguration = new DefaultConfigurationBuilder();
+        defaultConfiguration.addProperty("[@destinationURL]", "db://maildb/RecipientRewriteTable");
+        defaultConfiguration.addProperty("sqlFile", "file://conf/sqlResources.xml");
+        localVirtualUserTable.configure(defaultConfiguration);
+        localVirtualUserTable.init();
+        return localVirtualUserTable;
+    }
+    
+    private BasicDataSource getDataSource() {
+        BasicDataSource ds = new BasicDataSource();
+        ds.setDriverClassName(EmbeddedDriver.class.getName());
+        ds.setUrl("jdbc:derby:target/testdb;create=true");
+        ds.setUsername("james");
+        ds.setPassword("james");
+        return ds;
+    }
 }

Modified: james/project/trunk/server/data/data-jpa/pom.xml
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jpa/pom.xml?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/data/data-jpa/pom.xml (original)
+++ james/project/trunk/server/data/data-jpa/pom.xml Mon Nov  2 13:37:02 2015
@@ -92,11 +92,21 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>info.cukes</groupId>
+            <artifactId>cucumber-picocontainer</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.james</groupId>
             <artifactId>james-server-data-library</artifactId>
             <type>test-jar</type>

Modified: james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java (original)
+++ james/project/trunk/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java Mon Nov  2 13:37:02 2015
@@ -18,13 +18,54 @@
  ****************************************************************/
 package org.apache.james.rrt.jpa;
 
-import cucumber.api.java.en.Given;
+import java.util.HashMap;
 
-public class JPAStepdefs{
+import org.apache.commons.configuration.DefaultConfigurationBuilder;
+import org.apache.james.rrt.jpa.model.JPARecipientRewrite;
+import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
+import org.apache.james.rrt.lib.RewriteTablesStepdefs;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerFactory;
+import org.apache.openjpa.persistence.OpenJPAPersistence;
+import org.slf4j.LoggerFactory;
 
-    @Given("perform backend setup")
-    public void given() throws Throwable {
-        System.out.println("JPA");
+import cucumber.api.java.Before;
+
+public class JPAStepdefs {
+
+    private RewriteTablesStepdefs mainStepdefs;
+
+    public JPAStepdefs(RewriteTablesStepdefs mainStepdefs) {
+        this.mainStepdefs = mainStepdefs;
+    }
+
+    @Before
+    public void setup() throws Throwable {
+        mainStepdefs.rewriteTable = getRecipientRewriteTable(); 
     }
 
+    private OpenJPAEntityManagerFactory managerFactory() throws Exception {
+
+        // Use a memory database.
+        /*
+      The properties for the OpenJPA Entity Manager.
+     */
+        HashMap<String, String> properties = new HashMap<String, String>();
+        properties.put("openjpa.ConnectionDriverName", "org.h2.Driver");
+        properties.put("openjpa.ConnectionURL", "jdbc:h2:target/users/db");
+        properties.put("openjpa.Log", "JDBC=WARN, SQL=WARN, Runtime=WARN");
+        properties.put("openjpa.ConnectionFactoryProperties", "PrettyPrint=true, PrettyPrintLineLength=72");
+        properties.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)");
+        properties.put("openjpa.MetaDataFactory", "jpa(Types=" + JPARecipientRewrite.class.getName() + ")");
+
+        return OpenJPAPersistence.getEntityManagerFactory(properties);
+    }
+
+    private AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
+        JPARecipientRewriteTable localVirtualUserTable = new JPARecipientRewriteTable();
+        localVirtualUserTable.setLog(LoggerFactory.getLogger("MockLog"));
+        localVirtualUserTable.setEntityManagerFactory(managerFactory());
+        DefaultConfigurationBuilder defaultConfiguration = new DefaultConfigurationBuilder();
+        localVirtualUserTable.configure(defaultConfiguration);
+        return localVirtualUserTable;
+    }
 }

Modified: james/project/trunk/server/data/data-library/pom.xml
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/pom.xml?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/data/data-library/pom.xml (original)
+++ james/project/trunk/server/data/data-library/pom.xml Mon Nov  2 13:37:02 2015
@@ -98,6 +98,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-simple</artifactId>
             <scope>test</scope>

Modified: james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java (original)
+++ james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java Mon Nov  2 13:37:02 2015
@@ -18,24 +18,16 @@
  ****************************************************************/
 package org.apache.james.rrt.lib;
 
-import cucumber.api.java.en.Given;
+import static org.assertj.core.api.Assertions.assertThat;
+
 import cucumber.api.java.en.Then;
-import cucumber.api.java.en.When;
 
 public class RewriteTablesStepdefs {
 
-    @Given("i'm up")
-    public void given() throws Throwable {
-        System.out.println("i'm up");
-    }
-
-    @When("it's time")
-    public void when() throws Throwable {
-        System.out.println("it's time");
-    }
+    public AbstractRecipientRewriteTable rewriteTable;
 
-    @Then("say hello")
-    public void then() throws Throwable {
-        System.out.println("say hello");
+    @Then("mappings should be empty")
+    public void assertMappingsIsEmpty() throws Throwable {
+        assertThat(rewriteTable.getAllMappings()).isNullOrEmpty();
     }
 }

Modified: james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature (original)
+++ james/project/trunk/server/data/data-library/src/test/resources/cucumber/rewrite_tables.feature Mon Nov  2 13:37:02 2015
@@ -1,7 +1,4 @@
 Feature: Rewrite Tables tests
 
-  Scenario: will say hello
-    Given i'm up
-    And perform backend setup
-    When it's time
-    Then say hello
\ No newline at end of file
+  Scenario: rewrite tables should be empty when none defined
+    Then mappings should be empty
\ No newline at end of file

Modified: james/project/trunk/server/pom.xml
URL: http://svn.apache.org/viewvc/james/project/trunk/server/pom.xml?rev=1711965&r1=1711964&r2=1711965&view=diff
==============================================================================
--- james/project/trunk/server/pom.xml (original)
+++ james/project/trunk/server/pom.xml Mon Nov  2 13:37:02 2015
@@ -842,6 +842,12 @@
                 <scope>test</scope>
             </dependency>
             <dependency>
+                <groupId>org.assertj</groupId>
+                <artifactId>assertj-core</artifactId>
+                <version>1.7.1</version>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
                 <groupId>org.jmock</groupId>
                 <artifactId>jmock</artifactId>
                 <version>${jmock.version}</version>
@@ -1251,6 +1257,12 @@
                 <artifactId>cucumber-picocontainer</artifactId>
                 <version>${cucumber.version}</version>
             </dependency>
+            <dependency>
+                <groupId>info.cukes</groupId>
+                <artifactId>cucumber-picocontainer</artifactId>
+                <version>${cucumber.version}</version>
+                <scope>test</scope>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org