View Javadoc

1   package com.ozacc.mail.mock;
2   
3   import javax.mail.internet.InternetAddress;
4   
5   import com.ozacc.mail.Mail;
6   
7   /***
8    * ¥á¡¼¥?¤¬Æ±ÃͤǤ¢¤?¤³¤È¤òÄ´¤Ù¤?¥á¥½¥Ã¥É¤òÄó¶¡¡£
9    * <p>
10   * <strong>Ã?:</strong> źÉÕ¥Õ¥¡¥¤¥?¤ÏÈæ³ÓÂоݤˤʤê¤Þ¤»¤ó¡£
11   * 
12   * @since 1.1
13   * 
14   * @author Tomohiro Otsuka
15   * @version $Id: EqualityCheck.java,v 1.3 2004/09/22 05:56:00 otsuka Exp $
16   */
17  public class EqualityCheck {
18  
19  	private EqualityCheck() {}
20  
21  	/***
22  	 * expected¤Èsent¤Î¥á¡¼¥?ÆâÍÆ¤¬Æ±°?¤Ç¤¢¤?¤«¤É¤¦¤«¤òȽÄꤷ¤Þ¤¹¡£<br>
23  	 * MultipartMail¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤â»ØÄê¤Ç¤­¤Þ¤¹¡£Ã¢¤·¡¢ÅºÉÕ¥Õ¥¡¥¤¥?¤Ï¥Á¥§¥Ã¥¯¤µ¤?¤Þ¤»¤ó¡£
24  	 * 
25  	 * @param expected
26  	 * @param sent
27  	 * @return expected¤Èsent¤Î¥á¡¼¥?ÆâÍÆ¤¬Æ±°?¤Ç¤¢¤?¾?¹? true
28  	 */
29  	public static boolean equals(Mail expected, Mail sent) {
30  		boolean mockMode = false;
31  		if (expected instanceof MockMail) {
32  			mockMode = true;
33  		}
34  
35  		// ¥Þ¥?¥Á¥Ñ¡¼¥È¥á¡¼¥?¤Î¾?¹?
36  		if (expected.isMultipartMail()) {
37  
38  			// HTML
39  			if (!mockMode) {
40  				if ((expected.getHtmlText() == null && sent.getHtmlText() != null)
41  						|| (expected.getHtmlText() != null && sent.getHtmlText() == null)
42  						|| (!expected.getHtmlText().equals(sent.getHtmlText()))) {
43  					return false;
44  				}
45  			} else if (mockMode && expected.getHtmlText() != null) {
46  				if (!expected.getHtmlText().equals(sent.getHtmlText())) {
47  					return false;
48  				}
49  			}
50  		}
51  
52  		// Return-Path
53  		if (!mockMode || (mockMode && expected.getReturnPath() != null)) {
54  			if (expected.getReturnPath() != null && sent.getReturnPath() != null) {
55  				if (!expected.getReturnPath().equals(sent.getReturnPath())) {
56  					return false;
57  				}
58  			} else if ((expected.getReturnPath() != null && sent.getReturnPath() == null)
59  					|| (expected.getReturnPath() == null && sent.getReturnPath() != null)) {
60  				return false;
61  			}
62  		}
63  
64  		// to
65  		InternetAddress[] expectedAddresses = expected.getTo();
66  		InternetAddress[] sentAddresses = sent.getTo();
67  		if (!mockMode || (mockMode && expectedAddresses.length > 0)) {
68  			if (expectedAddresses.length != sentAddresses.length) {
69  				return false;
70  			}
71  			for (int i = 0; i < expectedAddresses.length; i++) {
72  				if (!expectedAddresses[i].equals(sentAddresses[i])) {
73  					return false;
74  				}
75  			}
76  		}
77  
78  		// cc
79  		expectedAddresses = expected.getCc();
80  		sentAddresses = sent.getCc();
81  		if (!mockMode || (mockMode && expectedAddresses.length > 0)) {
82  			if (expectedAddresses.length != sentAddresses.length) {
83  				return false;
84  			}
85  			for (int i = 0; i < expectedAddresses.length; i++) {
86  				if (!expectedAddresses[i].equals(sentAddresses[i])) {
87  					return false;
88  				}
89  			}
90  		}
91  
92  		// bcc
93  		expectedAddresses = expected.getBcc();
94  		sentAddresses = sent.getBcc();
95  		if (!mockMode || (mockMode && expectedAddresses.length > 0)) {
96  			if (expectedAddresses.length != sentAddresses.length) {
97  				return false;
98  			}
99  			for (int i = 0; i < expectedAddresses.length; i++) {
100 				if (!expectedAddresses[i].equals(sentAddresses[i])) {
101 					return false;
102 				}
103 			}
104 		}
105 
106 		// Reply-To
107 		if (!mockMode || (mockMode && expected.getReplyTo() != null)) {
108 			if (expected.getReplyTo() != null && sent.getReplyTo() != null) {
109 				if (!expected.getReplyTo().equals(sent.getReplyTo())) {
110 					return false;
111 				}
112 			} else if ((expected.getReplyTo() != null && sent.getReplyTo() == null)
113 					|| (expected.getReplyTo() == null && sent.getReplyTo() != null)) {
114 				return false;
115 			}
116 		}
117 
118 		// ·?̾
119 		if (!mockMode || (mockMode && expected.getSubject().length() > 0)) {
120 			if (!expected.getSubject().equals(sent.getSubject())) {
121 				return false;
122 			}
123 		}
124 
125 		// ËÜʸ
126 		if (!mockMode || (mockMode && expected.getText().length() > 0)) {
127 			if (!expected.getText().equals(sent.getText())) {
128 				return false;
129 			}
130 		}
131 
132 		return true;
133 	}
134 }