Author: davsclaus
Date: Mon Oct 19 08:23:06 2009
New Revision: 826603

URL: http://svn.apache.org/viewvc?rev=826603&view=rev
Log:
MR-195: Added more unit tests.

Added:
    
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailConvertersTest.java
   (with props)
    
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailEndpointTest.java
   (with props)
Modified:
    
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
    
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
    
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java
    
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java

Modified: 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java?rev=826603&r1=826602&r2=826603&view=diff
==============================================================================
--- 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
 (original)
+++ 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
 Mon Oct 19 08:23:06 2009
@@ -70,9 +70,6 @@
         // sanity check that we know the mail server
         ObjectHelper.notEmpty(config.getHost(), "host");
         ObjectHelper.notEmpty(config.getProtocol(), "protocol");
-        if (config.getPort() <= 0) {
-            throw new IllegalArgumentException("port mut be specified");
-        }
 
         return endpoint;
     }
@@ -107,14 +104,6 @@
         this.configuration = configuration;
     }
 
-    /**
-     * A strategy method allowing the URI destination to be translated into 
the actual Mail destination name
-     * (say by looking up in JNDI or something)
-     */
-    protected String convertPathToActualDestination(String path) {
-        return path;
-    }
-
     public ContentTypeResolver getContentTypeResolver() {
         return contentTypeResolver;
     }

Modified: 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java?rev=826603&r1=826602&r2=826603&view=diff
==============================================================================
--- 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
 (original)
+++ 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
 Mon Oct 19 08:23:06 2009
@@ -204,10 +204,10 @@
     public String getMailStoreLogInformation() {
         String ssl = "";
         if (isSecureProtocol()) {
-            ssl = "(SSL enabled" + (dummyTrustManager ? " using 
DummyTrustManager)" : ")");
+            ssl = " (SSL enabled" + (dummyTrustManager ? " using 
DummyTrustManager)" : ")");
         }
 
-        return protocol + "//" + host + ":" + port + ssl + ", folder=" + 
folderName;
+        return protocol + "://" + host + ":" + port + ssl + ", folder=" + 
folderName;
     }
 
     // Properties

Modified: 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java?rev=826603&r1=826602&r2=826603&view=diff
==============================================================================
--- 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java
 (original)
+++ 
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java
 Mon Oct 19 08:23:06 2009
@@ -78,15 +78,10 @@
 
     /**
      * Converts the given JavaMail message to an InputStream.
-     * Can return null.
      */
     @Converter
     public static InputStream toInputStream(Message message) throws 
IOException, MessagingException {
-        String s = toString(message);
-        if (s == null) {
-            return null;
-        }
-        return IOConverter.toInputStream(s, null);
+        return message.getInputStream();
     }
 
     /**

Modified: 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java?rev=826603&r1=826602&r2=826603&view=diff
==============================================================================
--- 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
 (original)
+++ 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java
 Mon Oct 19 08:23:06 2009
@@ -37,6 +37,7 @@
         assertEquals("getUsername()", "james", config.getUsername());
         assertEquals("getRecipients().get(Message.RecipientType.TO)", 
"ja...@myhost", config.getRecipients().get(Message.RecipientType.TO));
         assertEquals("folder", "INBOX", config.getFolderName());
+        assertEquals(false, config.isDebugMode());
     }
 
     @Test
@@ -49,6 +50,7 @@
         assertEquals("getUsername()", "james", config.getUsername());
         assertEquals("getRecipients().get(Message.RecipientType.TO)", 
"ja...@myhost", config.getRecipients().get(Message.RecipientType.TO));
         assertEquals("folder", "INBOX", config.getFolderName());
+        assertEquals(false, config.isDebugMode());
     }
 
     @Test
@@ -61,6 +63,7 @@
         assertEquals("getUsername()", "james", config.getUsername());
         assertEquals("getRecipients().get(Message.RecipientType.TO)", 
"ja...@myhost", config.getRecipients().get(Message.RecipientType.TO));
         assertEquals("folder", "INBOX", config.getFolderName());
+        assertEquals(false, config.isDebugMode());
     }
 
     @Test
@@ -81,6 +84,65 @@
         assertEquals("fetchSize", -1, config.getFetchSize());
         assertEquals("contentType", "text/plain", config.getContentType());
         assertEquals("unseen", true, config.isUnseen());
+        assertEquals(false, config.isDebugMode());
+        assertEquals(MailConstants.MAIL_DEFAULT_CONNECTION_TIMEOUT, 
config.getConnectionTimeout());
+        assertEquals(false, config.isSecureProtocol());
+        assertEquals("smtp://myhost:25, folder=INBOX", 
config.getMailStoreLogInformation());
+    }
+
+    @Test
+    public void testDefaultSMTPSConfiguration() throws Exception {
+        MailEndpoint endpoint = 
resolveMandatoryEndpoint("smtps://ja...@myhost?password=secret");
+        MailConfiguration config = endpoint.getConfiguration();
+        assertEquals("getProtocol()", "smtps", config.getProtocol());
+        assertEquals("getHost()", "myhost", config.getHost());
+        assertEquals("getPort()", MailUtils.DEFAULT_PORT_SMTPS, 
config.getPort());
+        assertEquals("getUsername()", "james", config.getUsername());
+        assertEquals("getRecipients().get(Message.RecipientType.TO)", 
"ja...@myhost", config.getRecipients().get(Message.RecipientType.TO));
+        assertEquals("folder", "INBOX", config.getFolderName());
+        assertEquals("encoding", null, config.getDefaultEncoding());
+        assertEquals("from", "ca...@localhost", config.getFrom());
+        assertEquals("password", "secret", config.getPassword());
+        assertEquals(false, config.isDelete());
+        assertEquals(false, config.isIgnoreUriScheme());
+        assertEquals("fetchSize", -1, config.getFetchSize());
+        assertEquals("contentType", "text/plain", config.getContentType());
+        assertEquals("unseen", true, config.isUnseen());
+        assertEquals(false, config.isDebugMode());
+        assertEquals(MailConstants.MAIL_DEFAULT_CONNECTION_TIMEOUT, 
config.getConnectionTimeout());
+        assertEquals(true, config.isSecureProtocol());
+        assertEquals("smtps://myhost:465 (SSL enabled), folder=INBOX", 
config.getMailStoreLogInformation());
+    }
+
+    @Test
+    public void testDebugMode() throws Exception {
+        MailEndpoint endpoint = 
resolveMandatoryEndpoint("smtp://ja...@myhost?password=secret&debugMode=true");
+        MailConfiguration config = endpoint.getConfiguration();
+        assertEquals(true, config.isDebugMode());
+    }
+
+    @Test
+    public void testConnectionTimeout() throws Exception {
+        MailEndpoint endpoint = 
resolveMandatoryEndpoint("smtp://ja...@myhost?password=secret&connectionTimeout=2500");
+        MailConfiguration config = endpoint.getConfiguration();
+        assertEquals(2500, config.getConnectionTimeout());
+    }
+
+    @Test
+    public void testDummyTrustManager() throws Exception {
+        MailEndpoint endpoint = 
resolveMandatoryEndpoint("smtp://ja...@myhost?password=secret&dummyTrustManager=true");
+        MailConfiguration config = endpoint.getConfiguration();
+        assertEquals(true, config.isDummyTrustManager());
+        assertEquals(false, config.isSecureProtocol());
+    }
+
+    @Test
+    public void testDummyTrustManagerSecure() throws Exception {
+        MailEndpoint endpoint = 
resolveMandatoryEndpoint("smtps://ja...@myhost?password=secret&dummyTrustManager=true");
+        MailConfiguration config = endpoint.getConfiguration();
+        assertEquals(true, config.isDummyTrustManager());
+        assertEquals(true, config.isSecureProtocol());
+        assertEquals("smtps://myhost:465 (SSL enabled using 
DummyTrustManager), folder=INBOX", config.getMailStoreLogInformation());
     }
 
     @Test
@@ -101,6 +163,7 @@
         assertEquals("fetchSize", -1, config.getFetchSize());
         assertEquals("contentType", "text/plain", config.getContentType());
         assertEquals("unseen", true, config.isUnseen());
+        assertEquals(false, config.isDebugMode());
     }
 
     @Test
@@ -121,6 +184,7 @@
         assertEquals("fetchSize", -1, config.getFetchSize());
         assertEquals("contentType", "text/plain", config.getContentType());
         assertEquals("unseen", true, config.isUnseen());
+        assertEquals(false, config.isDebugMode());
     }
 
     @Test
@@ -143,6 +207,7 @@
         assertEquals("fetchSize", -1, config.getFetchSize());
         assertEquals("unseen", false, config.isUnseen());
         assertEquals("contentType", "text/html", config.getContentType());
+        assertEquals(false, config.isDebugMode());
     }
 
     @Test
@@ -161,6 +226,7 @@
         assertEquals(false, config.isDelete());
         assertEquals(false, config.isIgnoreUriScheme());
         assertEquals("fetchSize", -1, config.getFetchSize());
+        assertEquals(false, config.isDebugMode());
     }
 
     @Test
@@ -179,6 +245,7 @@
         assertEquals(false, config.isDelete());
         assertEquals(false, config.isIgnoreUriScheme());
         assertEquals("fetchSize", -1, config.getFetchSize());
+        assertEquals(false, config.isDebugMode());
     }
 
     @Test
@@ -192,6 +259,7 @@
         assertEquals("getRecipients().get(Message.RecipientType.TO)", 
"ja...@myhost", config.getRecipients().get(Message.RecipientType.TO));
         assertEquals("folder", "INBOX", config.getFolderName());
         assertEquals("fetchSize", 5, config.getFetchSize());
+        assertEquals(false, config.isDebugMode());
     }
 
     @Override
@@ -199,4 +267,52 @@
         Endpoint endpoint = super.resolveMandatoryEndpoint(uri);
         return assertIsInstanceOf(MailEndpoint.class, endpoint);
     }
+
+    @Test
+    public void testMailComponentCtr() throws Exception {
+        MailComponent comp = new MailComponent();
+        comp.setCamelContext(context);
+        
+        assertNotNull(comp.getConfiguration());
+        assertNull(comp.getContentTypeResolver());
+
+        MailEndpoint endpoint = (MailEndpoint) 
comp.createEndpoint("smtp://myhost:25/?password=secret&username=james");
+        assertNotNull(endpoint);
+
+        // should be a copy of the configuration
+        assertNotSame(comp.getConfiguration(), endpoint.getConfiguration());
+    }
+
+    @Test
+    public void testMailComponentCtrCamelContext() throws Exception {
+        MailComponent comp = new MailComponent(context);
+
+        assertNotNull(comp.getConfiguration());
+        assertNull(comp.getContentTypeResolver());
+
+        MailEndpoint endpoint = (MailEndpoint) 
comp.createEndpoint("smtp://myhost:25/?password=secret&username=james");
+        assertNotNull(endpoint);
+
+        // should be a copy of the configuration
+        assertNotSame(comp.getConfiguration(), endpoint.getConfiguration());
+    }
+
+    @Test
+    public void testMailComponentCtrConfig() throws Exception {
+        MailConfiguration config = new MailConfiguration();
+        config.setUsername("james");
+        config.setPassword("secret");
+
+        MailComponent comp = new MailComponent(config);
+        comp.setCamelContext(context);
+
+        assertSame(config, comp.getConfiguration());
+        assertNull(comp.getContentTypeResolver());
+
+        MailEndpoint endpoint = (MailEndpoint) 
comp.createEndpoint("smtp://myhost/");
+        assertEquals("james", endpoint.getConfiguration().getUsername());
+        assertEquals("secret", endpoint.getConfiguration().getPassword());
+        assertEquals("myhost", endpoint.getConfiguration().getHost());
+    }
 }
+

Added: 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailConvertersTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailConvertersTest.java?rev=826603&view=auto
==============================================================================
--- 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailConvertersTest.java
 (added)
+++ 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailConvertersTest.java
 Mon Oct 19 08:23:06 2009
@@ -0,0 +1,128 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mail;
+
+import java.io.InputStream;
+import javax.mail.Message;
+import javax.mail.Multipart;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+/**
+ * @version $Revision$
+ */
+public class MailConvertersTest extends CamelTestSupport {
+
+    @Test
+    public void testMailMessageToString() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+
+        template.sendBodyAndHeader("direct:a", "Hello World", "Subject", 
"Camel rocks");
+
+        assertMockEndpointsSatisfied();
+
+        Message mailMessage = 
mock.getReceivedExchanges().get(0).getIn().getBody(MailMessage.class).getMessage();
+        assertNotNull(mailMessage);
+
+        String s = MailConverters.toString(mailMessage);
+        assertEquals("Hello World", s);
+    }
+
+    @Test
+    public void testMailMessageToInputStream() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+
+        template.sendBodyAndHeader("direct:a", "Hello World", "Subject", 
"Camel rocks");
+
+        assertMockEndpointsSatisfied();
+
+        Message mailMessage = 
mock.getReceivedExchanges().get(0).getIn().getBody(MailMessage.class).getMessage();
+        assertNotNull(mailMessage);
+
+        InputStream is = MailConverters.toInputStream(mailMessage);
+        assertNotNull(is);
+        assertEquals("Hello World", 
context.getTypeConverter().convertTo(String.class, is));
+    }
+
+    @Test
+    public void testMultipartToInputStream() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+
+        template.send("direct:a", new Processor() {
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setBody("Hello World");
+                
exchange.getIn().setHeader(MailConstants.MAIL_ALTERNATIVE_BODY, "Alternative 
World");
+            }
+        });
+
+        assertMockEndpointsSatisfied();
+
+        Message mailMessage = 
mock.getReceivedExchanges().get(0).getIn().getBody(MailMessage.class).getMessage();
+        assertNotNull(mailMessage);
+
+        Object content = mailMessage.getContent();
+        Multipart mp = assertIsInstanceOf(Multipart.class, content);
+
+        InputStream is = MailConverters.toInputStream(mp);
+        assertNotNull(is);
+        assertEquals("Alternative World", 
context.getTypeConverter().convertTo(String.class, is));
+    }
+
+    @Test
+    public void testMultipartToString() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+
+        template.send("direct:a", new Processor() {
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setBody("Hello World");
+                
exchange.getIn().setHeader(MailConstants.MAIL_ALTERNATIVE_BODY, "Alternative 
World");
+            }
+        });
+
+        assertMockEndpointsSatisfied();
+
+        Message mailMessage = 
mock.getReceivedExchanges().get(0).getIn().getBody(MailMessage.class).getMessage();
+        assertNotNull(mailMessage);
+
+        Object content = mailMessage.getContent();
+        Multipart mp = assertIsInstanceOf(Multipart.class, content);
+
+        String s = MailConverters.toString(mp);
+        assertEquals("Alternative World", s);
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                
from("direct:a").to("smtp://localhost?username=ja...@localhost");
+
+                
from("pop3://localhost?username=james&password=secret&consumer.delay=1000").to("mock:result");
+            }
+        };
+    }
+}

Propchange: 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailConvertersTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailConvertersTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailEndpointTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailEndpointTest.java?rev=826603&view=auto
==============================================================================
--- 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailEndpointTest.java
 (added)
+++ 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailEndpointTest.java
 Mon Oct 19 08:23:06 2009
@@ -0,0 +1,90 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mail;
+
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+
+/**
+ * @version $Revision$
+ */
+public class MailEndpointTest extends CamelTestSupport {
+
+    @Test
+    public void testMailEndpointCtr() throws Exception {
+        MailEndpoint endpoint = new MailEndpoint();
+        assertNull(endpoint.getConfiguration());
+        assertNull(endpoint.getContentTypeResolver());
+        assertNotNull(endpoint.getBinding());
+        assertNotNull(endpoint.getHeaderFilterStrategy());
+
+        MailConfiguration cfg = new MailConfiguration();
+        cfg.setPort(21);
+        cfg.setProtocol("smtp");
+        cfg.setHost("myhost");
+        cfg.setUsername("james");
+        cfg.setPassword("secret");
+
+        endpoint.setConfiguration(cfg);
+        assertSame(cfg, endpoint.getConfiguration());
+    }
+
+    @Test
+    public void testMailEndpointCtrEndpoint() throws Exception {
+        MailEndpoint endpoint = new MailEndpoint("smtp://myhost");
+        assertNull(endpoint.getContentTypeResolver());
+        assertNotNull(endpoint.getConfiguration());
+        assertNotNull(endpoint.getBinding());
+        assertNotNull(endpoint.getHeaderFilterStrategy());
+
+        MailConfiguration cfg = new MailConfiguration();
+        cfg.setPort(21);
+        cfg.setProtocol("smtp");
+        cfg.setHost("myhost");
+        cfg.setUsername("james");
+        cfg.setPassword("secret");
+
+        endpoint.setConfiguration(cfg);
+        assertSame(cfg, endpoint.getConfiguration());
+    }
+
+    @Test
+    public void testMailEndpointCtrEndpointConfig() throws Exception {
+        MailConfiguration cfg = new MailConfiguration();
+        cfg.setPort(21);
+        cfg.setProtocol("smtp");
+        cfg.setHost("myhost");
+        cfg.setUsername("james");
+        cfg.setPassword("secret");
+
+        MailEndpoint endpoint = new MailEndpoint("smtp://myhost", cfg);
+        assertSame(cfg, endpoint.getConfiguration());
+        assertNull(endpoint.getContentTypeResolver());
+        assertNotNull(endpoint.getBinding());
+        assertNotNull(endpoint.getHeaderFilterStrategy());
+
+        MailBinding bnd = endpoint.getBinding();
+        MyMailBinding myBnd = new MyMailBinding();
+        endpoint.setBinding(myBnd);
+        assertSame(myBnd, endpoint.getBinding());
+    }
+
+    private class MyMailBinding extends MailBinding {
+
+    }
+
+}

Propchange: 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailEndpointTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailEndpointTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date


Reply via email to