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')
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)