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          sendCalled = true;
31          sentMessage = aMessage;
32      }
33  
34      public void send(Message msg, Address[] address)
35      {
36          notImplemented();
37      }
38  
39      public void sendMessage(Message msg, Address[] address)
40      {
41          notImplemented();
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      public void verify()
55      {
56          if (!sendCalled)
57          {
58              junit.framework.Assert.fail("Send function wasn't called");
59          }
60          else
61          {
62              if (expectedMessage != null)
63              {
64                  try
65                  {
66                      if (!expectedMessage.getRealMessage().getContent().equals(sentMessage.getRealMessage().getContent()))
67                          junit.framework.Assert.fail("Expected content was\n" + expectedMessage.getRealMessage().getContent() + "\n" +
68                                  "Sent Content was\n" + sentMessage.getRealMessage().getContent());
69  
70                      if (!expectedMessage.getRealMessage().getContentType().equals(sentMessage.getRealMessage().getContentType()))
71                          junit.framework.Assert.fail("Expected content type was\n" + expectedMessage.getRealMessage().getContentType() + "\n" +
72                                  "Sent Content type was\n" + sentMessage.getRealMessage().getContentType());
73  
74                      if (!expectedMessage.getRealMessage().getSubject().equals(sentMessage.getRealMessage().getSubject()))
75                          junit.framework.Assert.fail("Expected subject was\n" + expectedMessage.getRealMessage().getSubject() + "\n" +
76                                  "Sent subject was\n" + sentMessage.getRealMessage().getSubject());
77                  }
78                  catch (IOException e)
79                  {
80                      e.printStackTrace();  //To change body of catch statement use Options | File Templates.
81                  }
82                  catch (MessagingException e)
83                  {
84                      e.printStackTrace();  //To change body of catch statement use Options | File Templates.
85                  }
86              }
87          }
88      }
89  }