1   package test.mock.mail;
2   
3   import javax.mail.event.TransportListener;
4   
5   import alt.javax.mail.Message;
6   
7   import javax.mail.Address;
8   import javax.mail.MessagingException;
9   
10  import com.mockobjects.*;
11  import com.mockobjects.mail.MockService;
12  import alt.javax.mail.Transport;
13  
14  import java.io.IOException;
15  
16  public class MockTransport extends MockService implements Transport
17  {
18  
19      private boolean sendCalled = false;
20      private Message expectedMessage;
21      private Message sentMessage;
22  
23      public void setExpectedMessage(Message aMessage)
24      {
25          expectedMessage = aMessage;
26      }
27  
28      public void send(Message aMessage)
29      {
30          notImplemented();
31      }
32  
33      public void send(Message msg, Address[] address)
34      {
35          notImplemented();
36      }
37  
38      public void sendMessage(Message msg, Address[] address)
39      {
40          sendCalled = true;
41          sentMessage = msg;
42      }
43  
44      public void addTransportListener(TransportListener transportListener)
45      {
46          notImplemented();
47      }
48  
49      public void removeTransportListener(TransportListener transportListener)
50      {
51          notImplemented();
52      }
53  
54      @Override
55      public void connect()
56      {
57          //yay
58      }
59  
60      public void verify()
61      {
62          if (!sendCalled)
63          {
64              junit.framework.Assert.fail("Send function wasn't called");
65          }
66          else
67          {
68              if (expectedMessage != null)
69              {
70                  try
71                  {
72                      if (!expectedMessage.getRealMessage().getContent().equals(sentMessage.getRealMessage().getContent()))
73                          junit.framework.Assert.fail("Expected content was\n" + expectedMessage.getRealMessage().getContent() + "\n" +
74                                  "Sent Content was\n" + sentMessage.getRealMessage().getContent());
75  
76                      if (!expectedMessage.getRealMessage().getContentType().equals(sentMessage.getRealMessage().getContentType()))
77                          junit.framework.Assert.fail("Expected content type was\n" + expectedMessage.getRealMessage().getContentType() + "\n" +
78                                  "Sent Content type was\n" + sentMessage.getRealMessage().getContentType());
79  
80                      if (!expectedMessage.getRealMessage().getSubject().equals(sentMessage.getRealMessage().getSubject()))
81                          junit.framework.Assert.fail("Expected subject was\n" + expectedMessage.getRealMessage().getSubject() + "\n" +
82                                  "Sent subject was\n" + sentMessage.getRealMessage().getSubject());
83                  }
84                  catch (IOException e)
85                  {
86                      e.printStackTrace();  //To change body of catch statement use Options | File Templates.
87                  }
88                  catch (MessagingException e)
89                  {
90                      e.printStackTrace();  //To change body of catch statement use Options | File Templates.
91                  }
92              }
93          }
94      }
95  }