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 org.apache.mailet.base.test.FakeMail;
24 import org.apache.mailet.base.test.FakeMailContext;
25 import org.apache.mailet.base.test.FakeMatcherConfig;
26
27 import org.apache.mailet.MailAddress;
28 import org.apache.mailet.Matcher;
29
30 import javax.mail.MessagingException;
31 import javax.mail.internet.ParseException;
32
33 import java.io.UnsupportedEncodingException;
34 import java.util.Arrays;
35 import java.util.Collection;
36
37 import junit.framework.TestCase;
38
39 public class SizeGreaterThanTest extends TestCase {
40
41 private FakeMail mockedMail;
42
43 private Matcher matcher;
44
45 public SizeGreaterThanTest(String arg0) throws UnsupportedEncodingException {
46 super(arg0);
47 }
48
49 private void setupMockedMail(long size) throws ParseException {
50 mockedMail = new FakeMail();
51 mockedMail.setMessageSize(size);
52 mockedMail.setRecipients(Arrays.asList(new MailAddress[] {new MailAddress("test@email")}));
53
54 }
55
56 private void setupMatcher(String size) throws MessagingException {
57 matcher = new SizeGreaterThan();
58 FakeMatcherConfig mci = new FakeMatcherConfig("SizeGreaterThan=" + size,
59 new FakeMailContext());
60 matcher.init(mci);
61 }
62
63
64 public void testSizeGreater() throws MessagingException {
65 setupMockedMail(2000000);
66 setupMatcher("1m");
67
68 Collection matchedRecipients = matcher.match(mockedMail);
69
70 assertNotNull(matchedRecipients);
71 assertEquals(matchedRecipients.size(), mockedMail.getRecipients().size());
72 }
73
74 public void testSizeNotGreater() throws MessagingException {
75 setupMockedMail(200000);
76 setupMatcher("1m");
77
78 Collection matchedRecipients = matcher.match(mockedMail);
79
80 assertNull(matchedRecipients);
81 }
82
83 public void testThrowExceptionOnInvalidAmount(){
84 boolean exception = false;
85 try {
86 setupMatcher("1mb");
87 } catch (MessagingException e) {
88 exception = true;
89 }
90 assertTrue("Exception thrown", exception);
91 }
92 }