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