Hi Anthony

in this case, what you're actually doing is creating a new mail
adapter, not using the same declared at tomee.xml

it's a way to circumvent the problem, yes.

TIA

Leo


On Wed, Jul 10, 2013 at 11:09 AM, Anthony Fryer <[email protected]> wrote:
> You should be able to inject the mail session directly into your unit test.
> I have a unit test that accesses the mail session through injection.  It
> looks like this...
>
> public class EmailServiceEJBTest {
>         final static Logger logger =
> LoggerFactory.getLogger(EmailServiceEJBTest.class);
>         final static String DATABASE_DRIVER = "org.hsqldb.jdbcDriver";
>         final static String DATABASE_URL        = 
> "jdbc:hsqldb:mem:pokersquid";
>
>         static SimpleSmtpServer smtpServer;
>         static EJBContainer ejbContainer;
>         private static boolean databaseInitialized = false;
>
>         @Resource(name="smtpSession")
>         public Session smtpSession;
>
>         @BeforeClass
>         public static void beforeClass() {
>                 smtpServer = SimpleSmtpServer.start(29876);
>
>                 Properties p = new Properties();
>                 // SMTP properties
>                 p.put("smtpSession", 
> "new://Resource?type=javax.mail.Session");
>                 p.put("smtpSession.mail.transport.protocol", "smtp");
>                 p.put("smtpSession.mail.smtp.host", "localhost");
>                 p.put("smtpSession.mail.smtp.port", "29876");
>                 p.put("smtpSession.mail.smtp.auth", "false");
>
>                 ejbContainer = EJBContainer.createEJBContainer(p);
>         }
>
>         @AfterClass
>         public static void afterClass() {
>                 ejbContainer.close();
>                 smtpServer.stop();
>         }
>
>         @Test
>         public void testSendSimpleEmail() {
>                 assertNotNull(smtpSession);
>                 assertNotNull(emailService);
>
>                 emailService.sendMail(
>                                 "[email protected]",
>                                 "test",
>                                 "this is a test email",
>                                 "text/plain");
>
>                 assertEquals(1, smtpServer.getReceivedEmailSize());
>                 Iterator<SmtpMessage> iter = smtpServer.getReceivedEmail();
>                 SmtpMessage email = iter.next();
>                 assertEquals("test", email.getHeaderValue("Subject"));
>                 assertEquals("this is a test email", email.getBody());
>         }
> }
>
>
>
> --
> View this message in context: 
> http://openejb.979440.n4.nabble.com/how-to-get-mail-session-from-JNDI-tp4664156p4664205.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.

Reply via email to