summaryrefslogtreecommitdiff
path: root/service/test
diff options
context:
space:
mode:
authorBruno Wagner Goncalves <bwagner@thoughtworks.com>2014-08-07 18:31:22 -0300
committerBruno Wagner Goncalves <bwagner@thoughtworks.com>2014-08-07 18:32:15 -0300
commit5a0d81e35b97113df983d8fd3fcbdb995606f56a (patch)
treebfb2227e302931e51e4d893e066fef9020050bbf /service/test
parentd4cf82682a1cc586628922f18fd0f501772717eb (diff)
Closes #2 +@shyba +@bwagner - Implemented behavior when calling get /mails, only works with basic tag search yet
Diffstat (limited to 'service/test')
-rw-r--r--service/test/adapter/mail_service_test.py53
1 files changed, 47 insertions, 6 deletions
diff --git a/service/test/adapter/mail_service_test.py b/service/test/adapter/mail_service_test.py
index dfaee058..84822038 100644
--- a/service/test/adapter/mail_service_test.py
+++ b/service/test/adapter/mail_service_test.py
@@ -1,16 +1,57 @@
import sys
import os
import unittest
+from mock import patch
+from mock import Mock
from app.adapter.mail_service import MailService
+class MailboxCollision(Exception):
+ pass
+
+
+class MailboxException(Exception):
+ pass
+
+
class TestMailService(unittest.TestCase):
- def test_initialization(self):
- mail_service = MailService()
+ def setUp(self):
+ self.mail_service = MailService()
+
+ def test_request_mail_has_mailbox(self):
+ with patch.object(self.mail_service, '_switch_mailbox', return_value=Mock()):
+ mails = self.mail_service.mails({'tags': ['inbox']})
+ self.assertIsNotNone(mails)
+
+ def test_request_mail_has_mailbox(self):
+ with patch.object(self.mail_service, '_switch_mailbox', return_value=None):
+ mails = self.mail_service.mails({'tags': ['inbox']})
+ self.assertEqual(mails, [])
+
+ def test_switch_mailbox_special_tag(self):
+ mailbox = Mock()
+ with patch.object(self.mail_service.account, 'getMailbox', return_value=mailbox):
+ new_mailbox = self.mail_service._switch_mailbox('sent')
+ self.assertEqual(new_mailbox, mailbox)
+
+ def test_switch_mailbox_custom_tag_exists(self):
+ mailbox = Mock()
+ with patch.object(self.mail_service.account, 'getMailbox', return_value=mailbox):
+ returned_mailbox = self.mail_service._switch_mailbox('custom')
+ self.assertEqual(mailbox, returned_mailbox)
+
+ def test_switch_mailbox_custom_tag_not_exists(self):
+ mailbox = Mock()
+ with patch.object(self.mail_service.account, 'getMailbox', side_effect=MailboxException()):
+ mailbox = self.mail_service._switch_mailbox('custom')
+ self.assertIsNone(mailbox)
+
+ def test_create_new_mailbox(self):
+ with patch.object(self.mail_service.account, 'addMailbox', return_value=True) as addMailbox:
+ self.assertTrue(self.mail_service._create_mailbox('teste'))
- def test_receive_mail(self):
- mail_service = MailService()
- mails = mail_service.mails("")
- self.assertIsNotNone(mails)
+ def test_create_existing_mailbox(self):
+ with patch.object(self.mail_service.account, 'addMailbox', side_effect=MailboxCollision()) as addMailbox:
+ self.assertFalse(self.mail_service._create_mailbox('teste'))