1 /*****************************************************************
2 * Licensed to the Apache Software Foundation (ASF) under one *
3 * or more contributor license agreements. See the NOTICE file *
4 * distributed with this work for additional information *
5 * regarding copyright ownership. The ASF licenses this file *
6 * to you under the Apache License, Version 2.0 (the *
7 * "License"); you may not use this file except in compliance *
8 * with the License. You may obtain a copy of the License at *
9 * *
10 * http://www.apache.org/licenses/LICENSE-2.0 *
11 * *
12 * Unless required by applicable law or agreed to in writing, *
13 * software distributed under the License is distributed on an *
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
15 * KIND, either express or implied. See the License for the *
16 * specific language governing permissions and limitations *
17 * under the License. *
18 ****************************************************************/
19
20
21 package org.apache.james.core;
22
23 import org.apache.james.test.mock.james.MockMailServer;
24 import org.apache.james.test.mock.javaxmail.MockMimeMessage;
25 import org.apache.mailet.MailAddress;
26 import org.apache.mailet.Mail;
27
28 import javax.mail.MessagingException;
29 import java.util.ArrayList;
30
31 public class MailImplTest extends MailTestAllImplementations {
32
33 protected Mail createMailImplementation() {
34 return new MailImpl();
35 }
36
37 public void testConstr1() throws MessagingException {
38 MailImpl mail = new MailImpl();
39
40 helperTestInitialState(mail);
41 helperTestMessageSize(mail, 0);
42 assertNull("no initial message", mail.getMessage());
43 assertNull("no initial sender", mail.getSender());
44 assertNull("no initial name", mail.getName());
45 }
46
47 public void testConstr2() throws MessagingException {
48 ArrayList recepients = new ArrayList();
49 String name = new MockMailServer().getId();
50 String sender = "sender@localhost";
51 MailAddress senderMailAddress = new MailAddress(sender);
52 MailImpl mail = new MailImpl(name, senderMailAddress, recepients);
53
54 helperTestInitialState(mail);
55 helperTestMessageSize(mail, 0);
56 assertNull("no initial message", mail.getMessage());
57 assertEquals("sender", sender, mail.getSender().toString());
58 assertEquals("name", name, mail.getName());
59
60 mail.setMessage(new MockMimeMessage());
61 assertNotNull("message", mail.getMessage());
62 }
63
64 public void testConstr3() throws MessagingException {
65 ArrayList recepients = new ArrayList();
66 String name = new MockMailServer().getId();
67 String sender = "sender@localhost";
68 MailAddress senderMailAddress = new MailAddress(sender);
69 MockMimeMessage mimeMessage = new MockMimeMessage();
70 MailImpl mail = new MailImpl(name, senderMailAddress, recepients, mimeMessage);
71
72 helperTestInitialState(mail);
73 helperTestMessageSize(mail, 0);
74 assertEquals("initial message", mimeMessage.getMessageID(), mail.getMessage().getMessageID());
75 assertEquals("sender", sender, mail.getSender().toString());
76 assertEquals("name", name, mail.getName());
77 mail.dispose();
78 }
79
80 public void testDuplicate() throws MessagingException {
81 MailImpl mail = new MailImpl();
82 MailImpl duplicate = (MailImpl) mail.duplicate();
83 assertNotSame("is real duplicate", mail, duplicate);
84 helperTestInitialState(duplicate);
85 helperTestMessageSize(duplicate, 0);
86 }
87
88 public void testDuplicateNewName() throws MessagingException {
89 String newName = "aNewName";
90
91 MailImpl mail = new MailImpl();
92 assertFalse("before + after names differ", newName.equals(mail.getName()));
93
94 MailImpl duplicate = (MailImpl) mail.duplicate(newName);
95 assertEquals("new name set", newName, duplicate.getName());
96 helperTestInitialState(duplicate);
97 helperTestMessageSize(duplicate, 0);
98 }
99 }