KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > james > transport > matchers > SizeGreaterThanTest


1 /****************************************************************
2  * Licensed to the Apache Software Foundation (ASF) under one *
3  * or more contributor license agreements. See the NOTICE file *
4  * distributed with this work for additional information *
5  * regarding copyright ownership. The ASF licenses this file *
6  * to you under the Apache License, Version 2.0 (the *
7  * "License"); you may not use this file except in compliance *
8  * with the License. You may obtain a copy of the License at *
9  * *
10  * http://www.apache.org/licenses/LICENSE-2.0 *
11  * *
12  * Unless required by applicable law or agreed to in writing, *
13  * software distributed under the License is distributed on an *
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
15  * KIND, either express or implied. See the License for the *
16  * specific language governing permissions and limitations *
17  * under the License. *
18  ****************************************************************/

19
20
21 package org.apache.james.transport.matchers;
22
23 import org.apache.james.test.mock.mailet.MockMail;
24 import org.apache.james.test.mock.mailet.MockMailContext;
25 import org.apache.james.test.mock.mailet.MockMatcherConfig;
26
27 import org.apache.mailet.MailAddress;
28 import org.apache.mailet.Matcher;
29
30 import javax.mail.MessagingException JavaDoc;
31 import javax.mail.internet.ParseException JavaDoc;
32
33 import java.io.UnsupportedEncodingException JavaDoc;
34 import java.util.Arrays JavaDoc;
35 import java.util.Collection JavaDoc;
36
37 import junit.framework.TestCase;
38
39 public class SizeGreaterThanTest extends TestCase {
40
41     private MockMail mockedMail;
42
43     private Matcher matcher;
44
45     public SizeGreaterThanTest(String JavaDoc arg0) throws UnsupportedEncodingException JavaDoc {
46         super(arg0);
47     }
48
49     private void setupMockedMail(long size) throws ParseException JavaDoc {
50         mockedMail = new MockMail();
51         mockedMail.setMessageSize(size);
52         mockedMail.setRecipients(Arrays.asList(new MailAddress[] {new MailAddress("test@email")}));
53
54     }
55
56     private void setupMatcher(String JavaDoc size) throws MessagingException JavaDoc {
57         matcher = new SizeGreaterThan();
58         MockMatcherConfig mci = new MockMatcherConfig("SizeGreaterThan=" + size,
59                 new MockMailContext());
60         matcher.init(mci);
61     }
62
63     
64     public void testSizeGreater() throws MessagingException JavaDoc {
65     setupMockedMail(2000000);
66         setupMatcher("1m");
67
68         Collection JavaDoc matchedRecipients = matcher.match(mockedMail);
69
70         assertNotNull(matchedRecipients);
71         assertEquals(matchedRecipients.size(), mockedMail.getRecipients().size());
72     }
73     
74     public void testSizeNotGreater() throws MessagingException JavaDoc {
75         setupMockedMail(200000);
76         setupMatcher("1m");
77
78         Collection JavaDoc 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 JavaDoc e) {
88             exception = true;
89         }
90         assertTrue("Exception thrown", exception);
91     }
92 }
93
Popular Tags