| /** |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.geronimo.javamail.testserver; |
| |
| import java.io.InputStream; |
| import java.util.Properties; |
| |
| import javax.mail.Address; |
| import javax.mail.Session; |
| import javax.mail.Transport; |
| import javax.mail.internet.InternetAddress; |
| import javax.mail.internet.MimeMessage; |
| |
| import junit.framework.Assert; |
| import junit.framework.TestCase; |
| |
| import org.apache.geronimo.javamail.store.pop3.POP3StoreTest; |
| |
| public abstract class AbstractProtocolTest extends TestCase { |
| |
| protected MailServer server = new MailServer(); |
| protected MailServer.Pop3TestConfiguration pop3Conf; |
| protected MailServer.SmtpTestConfiguration smtpConf; |
| protected MailServer.ImapTestConfiguration imapConf; |
| |
| @Override |
| protected void setUp() throws Exception { |
| super.setUp(); |
| pop3Conf = new MailServer.Pop3TestConfiguration(); |
| smtpConf = new MailServer.SmtpTestConfiguration(); |
| imapConf = new MailServer.ImapTestConfiguration(); |
| |
| } |
| |
| protected void start() throws Exception { |
| |
| server.start(smtpConf, pop3Conf, imapConf); |
| |
| } |
| |
| public void testImplUsageImap() throws Exception { |
| |
| //check that we load our mail impl |
| final Properties props = new Properties(); |
| props.setProperty("mail.store.protocol", "imap"); |
| final Session jmsession = Session.getInstance(props); |
| Assert.assertEquals(org.apache.geronimo.javamail.store.imap.IMAPStore.class, jmsession.getStore().getClass()); |
| |
| } |
| |
| public void testImplUsagePop3() throws Exception { |
| |
| //check that we load our mail impl |
| final Properties props = new Properties(); |
| props.setProperty("mail.store.protocol", "pop3"); |
| final Session jmsession = Session.getInstance(props); |
| Assert.assertEquals(org.apache.geronimo.javamail.store.pop3.POP3Store.class, jmsession.getStore().getClass()); |
| |
| } |
| |
| public void testImplUsageSmtp() throws Exception { |
| |
| //check that we load our mail impl |
| final Properties props = new Properties(); |
| props.setProperty("mail.transport.protocol", "smtp"); |
| final Session jmsession = Session.getInstance(props); |
| Assert.assertEquals(org.apache.geronimo.javamail.transport.smtp.SMTPTransport.class, jmsession.getTransport().getClass()); |
| |
| } |
| |
| protected void sendTestMsgs() throws Exception { |
| final Properties props = new Properties(); |
| props.setProperty("mail.smtp.port", String.valueOf(smtpConf.getListenerPort())); |
| props.setProperty("mail.debug", "true"); |
| final Session session = Session.getInstance(props); |
| sendMessage(session, "/messages/multipart.msg"); |
| sendMessage(session, "/messages/simple.msg"); |
| server.ensureMsgCount(2); |
| } |
| |
| protected void sendMessage(final Session session, final String msgFile) throws Exception { |
| MimeMessage message; |
| final InputStream in = POP3StoreTest.class.getResourceAsStream(msgFile); |
| try { |
| message = new MimeMessage(session, in); |
| } finally { |
| in.close(); |
| } |
| Transport.send(message, new Address[] { new InternetAddress("serveruser@localhost") }); |
| } |
| |
| protected void sendMessage(final MimeMessage message) throws Exception { |
| Transport.send(message, new Address[] { new InternetAddress("serveruser@localhost") }); |
| } |
| |
| @Override |
| protected void tearDown() throws Exception { |
| server.stop(); |
| } |
| |
| } |