Пример #1
0
 def setUp(self):
     self.sysconf = Mock()
     self.dao = Mock()
     self.validator = Mock()
     self.notifier = Mock()
     self.service = VoicemailService(self.dao, self.validator, self.notifier, self.sysconf)
     self.voicemail = Voicemail(number='1000', context='default')
Пример #2
0
class TestVoicemailService(unittest.TestCase):

    def setUp(self):
        self.sysconf = Mock()
        self.dao = Mock()
        self.validator = Mock()
        self.notifier = Mock()
        self.service = VoicemailService(self.dao, self.validator, self.notifier, self.sysconf)
        self.voicemail = Voicemail(number='1000', context='default')

    def test_when_editing_then_validation_passes(self):
        self.service.edit(self.voicemail)

        self.validator.validate_edit.assert_called_once_with(self.voicemail)

    def test_when_editing_then_dao_updated(self):
        self.service.edit(self.voicemail)

        self.dao.edit.assert_called_once_with(self.voicemail)

    def test_when_editing_then_notifier_notified(self):
        self.service.edit(self.voicemail)

        self.notifier.edited.assert_called_once_with(self.voicemail)

    def test_given_number_and_context_have_not_changed_when_editing_then_sysconfd_not_called(self):
        self.dao.get.return_value = self.voicemail

        self.service.edit(self.voicemail)

        self.assertEquals(self.sysconf.move_voicemail.call_count, 0)

    def test_given_number_and_context_have_changed_when_editing_then_sysconfd_called(self):
        old_voicemail = self.dao.get.return_value = Voicemail(number='100', context='ctx')

        self.service.edit(self.voicemail)

        self.sysconf.move_voicemail.assert_called_once_with(old_voicemail.number,
                                                            old_voicemail.context,
                                                            self.voicemail.number,
                                                            self.voicemail.context)

    def test_when_deleting_then_validation_passes(self):
        self.service.delete(self.voicemail)

        self.validator.validate_delete.assert_called_once_with(self.voicemail)

    def test_when_deleting_then_dao_updated(self):
        self.service.delete(self.voicemail)

        self.dao.delete.assert_called_once_with(self.voicemail)

    def test_when_deleting_then_notifier_notified(self):
        self.service.delete(self.voicemail)

        self.notifier.deleted.assert_called_once_with(self.voicemail)

    def test_when_deleting_a_voicemail_then_voicemail_storage_deleted(self):
        self.service.delete(self.voicemail)

        self.sysconf.delete_voicemail.assert_called_once_with(self.voicemail.number,
                                                              self.voicemail.context)