package org.orienteer.notifications.test; import com.google.inject.Inject; import com.orientechnologies.orient.core.db.ODatabaseRecordThreadLocal; import com.orientechnologies.orient.core.db.document.ODatabaseDocument; import com.orientechnologies.orient.core.record.impl.ODocument; import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.orienteer.core.dao.DAO; import org.orienteer.junit.OrienteerTestRunner; import org.orienteer.junit.Sudo; import org.orienteer.mail.model.OMail; import org.orienteer.mail.model.OPreparedMail; import org.orienteer.mail.util.OMailUtils; import org.orienteer.notifications.model.IOMailNotification; import org.orienteer.notifications.model.IONotificationDAO; import org.orienteer.notifications.service.INotificationService; import org.orienteer.notifications.testenv.module.TestDataModule; @RunWith(OrienteerTestRunner.class) public class TestSendMailNotification { private IOMailNotification notification; @Inject private INotificationService notificationService; @Inject private IONotificationDAO notificationDAO; @Before @Sudo public void init() { OMail mail = OMailUtils.getOMailByName(TestDataModule.MAIL_TEST) .orElseThrow(() -> new IllegalStateException("There is no mail with name: " + TestDataModule.MAIL_TEST)); OPreparedMail preparedMail = new OPreparedMail(mail); preparedMail.addRecipient("[email protected]"); preparedMail.save(); ODocument mailTransport = notificationDAO.findTransportByAlias(TestDataModule.TRANSPORT_MAIL); if (mailTransport == null) { throw new IllegalStateException("There is no configured mail notification transport"); } notification = DAO.create(IOMailNotification.class); notification.fromStream(new ODocument(IOMailNotification.CLASS_NAME)); notification.setPreparedMail(preparedMail.getDocument()); notification.setTransport(mailTransport); notification.save(); } @After @Sudo public void destroy() { ODatabaseDocument db = ODatabaseRecordThreadLocal.instance().get(); for (int i = 0; i < 10; i++) { try { db.delete(notification.getDocument()); break; } catch (Exception e) { notification.reload(); } } } @Test @Sudo @Ignore public void testSendMailNotification() { notificationService.send(notification); } }