View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.mail;
18  
19  import java.io.IOException;
20  
21  import org.apache.commons.mail.mocks.MockSimpleEmail;
22  
23  /**
24   * JUnit test case for SimpleEmailTest
25   * @since 1.0
26   * @version $Id: SimpleEmailTest.java 1429506 2013-01-06 12:33:56Z tn $
27   */
28  public class SimpleEmailTest extends BaseEmailTestCase
29  {
30      /** */
31      private MockSimpleEmail email;
32  
33      /**
34       * @param name name
35       */
36      public SimpleEmailTest(String name)
37      {
38          super(name);
39      }
40  
41      /**
42       * @throws Exception  */
43      @Override
44      protected void setUp() throws Exception
45      {
46          super.setUp();
47          // reusable objects to be used across multiple tests
48          this.email = new MockSimpleEmail();
49      }
50  
51      /**
52       * @throws EmailException  */
53      public void testGetSetMsg() throws EmailException
54      {
55          // ====================================================================
56          // Test Success
57          // ====================================================================
58          for (int i = 0; i < testCharsValid.length; i++)
59          {
60              this.email.setMsg(testCharsValid[i]);
61              assertEquals(testCharsValid[i], this.email.getMsg());
62          }
63  
64          // ====================================================================
65          // Test Exception
66          // ====================================================================
67          for (int i = 0; i < this.testCharsNotValid.length; i++)
68          {
69              try
70              {
71                  this.email.setMsg(this.testCharsNotValid[i]);
72                  fail("Should have thrown an exception");
73              }
74              catch (EmailException e)
75              {
76                  assertTrue(true);
77              }
78          }
79  
80      }
81  
82      /**
83       * @throws EmailException when a bad address is set.
84       * @throws IOException when sending fails
85       * @todo Add code to test the popBeforeSmtp() settings
86       */
87      public void testSend() throws EmailException, IOException
88      {
89          // ====================================================================
90          // Test Success
91          // ====================================================================
92          this.getMailServer();
93  
94          this.email = new MockSimpleEmail();
95          this.email.setHostName(this.strTestMailServer);
96          this.email.setSmtpPort(this.getMailServerPort());
97          this.email.setFrom(this.strTestMailFrom);
98          this.email.addTo(this.strTestMailTo);
99  
100         if (this.strTestUser != null && this.strTestPasswd != null)
101         {
102             this.email.setAuthentication(
103                 this.strTestUser,
104                 this.strTestPasswd);
105         }
106 
107         String strSubject = "Test Msg Subject";
108         String strMessage = "Test Msg Body";
109 
110         this.email.setCharset(EmailConstants.ISO_8859_1);
111         this.email.setSubject(strSubject);
112 
113         this.email.setMsg(strMessage);
114 
115         this.email.send();
116 
117         this.fakeMailServer.stop();
118         validateSend(
119             this.fakeMailServer,
120             strSubject,
121             this.email.getMsg(),
122             this.email.getFromAddress(),
123             this.email.getToAddresses(),
124             this.email.getCcAddresses(),
125             this.email.getBccAddresses(),
126             true);
127     }
128 }