package org.subethamail.smtp; import java.util.Properties; import javax.mail.Session; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.subethamail.wiser.Wiser; /** * This class attempts to quickly start/stop 10 Wiser servers. It makes sure that the socket bind address is correctly * shut down. * * @author Jon Stevens */ public class StartStopTest extends TestCase { /** */ @SuppressWarnings("unused") private static Logger log = LoggerFactory.getLogger(StartStopTest.class); /** */ public static final int PORT = 2566; /** */ protected Session session; protected int counter = 0; /** */ public StartStopTest(String name) { super(name); } /** */ @Override protected void setUp() throws Exception { super.setUp(); Properties props = new Properties(); props.setProperty("mail.smtp.host", "localhost"); props.setProperty("mail.smtp.port", Integer.toString(PORT)); this.session = Session.getDefaultInstance(props); } /** */ @Override protected void tearDown() throws Exception { super.tearDown(); } /** */ public void testMultipleStartStop() throws Exception { for (int i = 0; i < 10; i++) { this.startStop(i > 5); } assertEquals(this.counter, 10); } /** */ private void startStop(boolean pause) throws Exception { Wiser wiser = new Wiser(); wiser.setPort(PORT); wiser.start(); if (pause) Thread.sleep(1000); wiser.stop(); this.counter++; } /** */ public static Test suite() { return new TestSuite(StartStopTest.class); } }