1 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 ; 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 MockMail 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 MockMail(); 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 MockMatcherConfig mci = new MockMatcherConfig("SizeGreaterThan=" + size, 59 new MockMailContext()); 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 } 93 | Popular Tags |