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
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
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
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
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
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
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 }