1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.james.transport.matchers;
22
23 import java.io.UnsupportedEncodingException;
24 import java.util.Arrays;
25 import javax.mail.MessagingException;
26
27 import junit.framework.TestCase;
28
29 import org.apache.mailet.base.test.FakeMail;
30 import org.apache.mailet.base.test.FakeMailContext;
31 import org.apache.mailet.base.test.FakeMatcherConfig;
32 import org.apache.mailet.MailAddress;
33 import org.apache.mailet.Matcher;
34
35 public abstract class AbstractRecipientIsTest extends TestCase {
36
37 protected FakeMail mockedMail;
38
39 protected Matcher matcher;
40
41 private MailAddress[] recipients;
42
43 public AbstractRecipientIsTest(String arg0)
44 throws UnsupportedEncodingException {
45 super(arg0);
46 }
47
48 protected void setRecipients(MailAddress[] recipients) {
49 this.recipients = recipients;
50 }
51
52 protected void setupMockedMail() {
53 mockedMail = new FakeMail();
54 mockedMail.setRecipients(Arrays.asList(recipients));
55
56 }
57
58 protected void setupMatcher() throws MessagingException {
59 matcher = createMatcher();
60 FakeMatcherConfig mci = new FakeMatcherConfig("RecipientIs="
61 + getRecipientName(), new FakeMailContext());
62 matcher.init(mci);
63 }
64
65 protected void setupAll() throws MessagingException {
66 setupMockedMail();
67 setupMatcher();
68 }
69
70 protected abstract String getRecipientName();
71
72 protected abstract Matcher createMatcher();
73 }