View Javadoc

1   package com.ozacc.mail.mock;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   
6   import org.apache.commons.logging.Log;
7   import org.apache.commons.logging.LogFactory;
8   
9   import com.ozacc.mail.MailException;
10  import com.ozacc.mail.fetch.FetchMail;
11  import com.ozacc.mail.fetch.ReceivedMail;
12  
13  /***
14   * FetchMailImplクラスのMock。<br>
15   * <code>setupGetMails()</code>メソッドで<code>ReceivedMail</code>インスタンスをセットすると、<code>getMails()</code>メソッドがそのインスタンスを返します。
16   * 
17   * @since 1.2
18   * @author Tomohiro Otsuka
19   * @version $Id: MockFetchMail.java,v 1.1.2.3 2005/02/05 09:25:25 otsuka Exp $
20   */
21  public class MockFetchMail implements FetchMail {
22  
23  	private static Log log = LogFactory.getLog(MockFetchMail.class);
24  
25  	/*** デフォルトのSMTPサーバ。「localhost」 */
26  	public static final String DEFAULT_HOST = "localhost";
27  
28  	/*** デフォルトのプロトコル。「pop3」 */
29  	public static final String DEFAULT_PROTOCOL = "pop3";
30  
31  	/***
32  	 * デフォルトのポート。「-1」<br>
33  	 * -1はプロトコルに応じた適切なポートを設定する特別な値。
34  	 */
35  	public static final int DEFAULT_PORT = -1;
36  
37  	private static final String INBOX_NAME = "INBOX";
38  
39  	private String host = DEFAULT_HOST;
40  
41  	private String protocol = DEFAULT_PROTOCOL;
42  
43  	private int port = DEFAULT_PORT;
44  
45  	private String username;
46  
47  	private String password;
48  
49  	private List receivedMails;
50  
51  	/***
52  	 * コンストラクタ。
53  	 */
54  	public MockFetchMail() {
55  		super();
56  		receivedMails = new ArrayList();
57  	}
58  
59  	/***
60  	 * <code>MockFetchMail</code>の<code>getMails()</code>メソッドが返す
61  	 * <code>ReceivedMail</code>インスタンスをセットします。
62  	 * 
63  	 * @param mail <code>getMails()</code>メソッドが返す<code>ReceivedMail</code>インスタンス
64  	 */
65  	public void setupGetMails(ReceivedMail mail) {
66  		receivedMails.add(mail);
67  	}
68  
69  	/***
70  	 * <code>MockFetchMail</code>の<code>getMails()</code>メソッドが返す
71  	 * <code>ReceivedMail</code>インスタンスをセットします。
72  	 * 
73  	 * @param mails <code>getMails()</code>メソッドが返す<code>ReceivedMail</code>インスタンス配列
74  	 */
75  	public void setupGetMails(ReceivedMail[] mails) {
76  		for (int i = 0; i < mails.length; i++) {
77  			ReceivedMail mail = mails[i];
78  			setupGetMails(mail);
79  		}
80  	}
81  
82  	/***
83  	 * @see com.ozacc.mail.fetch.FetchMail#getMails()
84  	 */
85  	public ReceivedMail[] getMails() throws MailException {
86  		log.debug(protocol.toUpperCase() + "サーバ[" + host + "]に接続しるフリ。");
87  		log.debug(protocol.toUpperCase() + "サーバ[" + host + "]に接続したフリ。");
88  
89  		if (receivedMails.size() > 0) {
90  			log.debug(receivedMails.size() + "通のメールを受信するフリ。");
91  		} else {
92  			log.debug("受信するフリをするメールはありません。");
93  		}
94  		try {
95  			return (ReceivedMail[])receivedMails.toArray(new ReceivedMail[receivedMails.size()]);
96  		} finally {
97  			log.debug(protocol.toUpperCase() + "サーバ[" + host + "]との接続を切断するフリ。");
98  			log.debug(protocol.toUpperCase() + "サーバ[" + host + "]との接続を切断したフリ。");
99  		}
100 	}
101 
102 	/***
103 	 * @see com.ozacc.mail.fetch.FetchMail#getMails(boolean)
104 	 */
105 	public ReceivedMail[] getMails(boolean delete) throws MailException {
106 		ReceivedMail[] result = getMails();
107 		if (delete) {
108 			receivedMails.clear();
109 		}
110 		return result;
111 	}
112 
113 	/***
114 	 * @return Returns the host.
115 	 */
116 	public String getHost() {
117 		return host;
118 	}
119 
120 	/***
121 	 * @param host The host to set.
122 	 */
123 	public void setHost(String host) {
124 		this.host = host;
125 	}
126 
127 	/***
128 	 * @return Returns the password.
129 	 */
130 	public String getPassword() {
131 		return password;
132 	}
133 
134 	/***
135 	 * @param password The password to set.
136 	 */
137 	public void setPassword(String password) {
138 		this.password = password;
139 	}
140 
141 	/***
142 	 * @return Returns the port.
143 	 */
144 	public int getPort() {
145 		return port;
146 	}
147 
148 	/***
149 	 * @param port The port to set.
150 	 */
151 	public void setPort(int port) {
152 		this.port = port;
153 	}
154 
155 	/***
156 	 * @return Returns the protocol.
157 	 */
158 	public String getProtocol() {
159 		return protocol;
160 	}
161 
162 	/***
163 	 * @param protocol The protocol to set.
164 	 */
165 	public void setProtocol(String protocol) {
166 		this.protocol = protocol;
167 	}
168 
169 	/***
170 	 * @return Returns the username.
171 	 */
172 	public String getUsername() {
173 		return username;
174 	}
175 
176 	/***
177 	 * @param username The username to set.
178 	 */
179 	public void setUsername(String username) {
180 		this.username = username;
181 	}
182 }