Package org.springmodules.email.dispatcher

Source Code of org.springmodules.email.dispatcher.JavaMailEmailDispatcherTests

/*
* Copyright 2002-2007 the original author or authors.
*
* Licensed 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.springmodules.email.dispatcher;

import java.util.HashMap;
import java.util.Map;

import com.dumbster.smtp.SimpleSmtpServer;
import com.dumbster.smtp.SmtpMessage;
import junit.framework.TestCase;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springmodules.email.Person;
import org.springmodules.email.parser.xml.SaxEmailParser;
import org.springmodules.template.engine.velocity.VelocityTemplateEngine;
import org.springmodules.template.resolver.BasicTemplateResolver;

/**
* @author Uri Boness
*/
public class JavaMailEmailDispatcherTests extends TestCase {

    private JavaMailEmailDispatcher dispatcher;

    private SimpleSmtpServer server;

    protected void setUp() throws Exception {
        ResourceLoader loader = new ClassPathResourceLoader();
        VelocityTemplateEngine engine = new VelocityTemplateEngine(loader);
        engine.afterPropertiesSet();
        BasicTemplateResolver resolver = new BasicTemplateResolver(engine, loader);

        dispatcher = new JavaMailEmailDispatcher();
        dispatcher.setResourceLoader(loader);
        dispatcher.setTemplateResolver(resolver);
        dispatcher.setHost("localhost");
        dispatcher.setPort(2525);
        dispatcher.afterPropertiesSet();

        server = SimpleSmtpServer.start(2525);
    }

    protected void tearDown() throws Exception {
        server.stop();
    }

    public void testSend() throws Exception {

        Map model = new HashMap();
        model.put("sender", new Person("Daan", "daan@bla.com"));
        model.put("recipient", new Person("Lian", "lian@bla.com"));
        dispatcher.send("email.eml", model);

        assertEquals(1, server.getReceivedEmailSize());
        SmtpMessage message = (SmtpMessage)server.getReceivedEmail().next();
        assertEquals("Daan <daan@bla.com>", message.getHeaderValue("From"));
        assertEquals("Lian <lian@bla.com>", message.getHeaderValue("To"));
        assertEquals("subject", message.getHeaderValue("Subject"));
        assertEquals("No Reply <noreply@bla.org>", message.getHeaderValue("Reply-To"));
    }


    //============================================== Inner Classes =====================================================

    protected class ClassPathResourceLoader implements ResourceLoader {

        public Resource getResource(String location) {
            return new ClassPathResource(location, JavaMailEmailDispatcherTests.class);
        }

        public ClassLoader getClassLoader() {
            return Thread.currentThread().getContextClassLoader();
        }
    }
}
TOP

Related Classes of org.springmodules.email.dispatcher.JavaMailEmailDispatcherTests

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.