class TestDirChangeEventHandler(TestCase):

    def setUp(self):

        self._on_create = MagicMock()
        self._on_delete = MagicMock()

        self._sut = DirChangeEventHandler(self._on_create, self._on_delete)

    def test_init_raises_exception_if_new_file_is_not_callable(self):
        self.assertRaises(InvalidCallable, DirChangeEventHandler, 1, lambda x: x)

    def test_init_raises_exception_if_file_delete_is_not_callable(self):
        self.assertRaises(InvalidCallable, DirChangeEventHandler, lambda x: x, 1)

    def test_init(self):
        self.assertEqual(self._on_create, self._sut.new_file_callable)
        self.assertEqual(self._on_delete, self._sut.file_deleted_callable)

    def test_on_create_calls_proper_handler(self):
        event = {}
        self._sut.on_created(event)

        self._on_create.assert_called_once_with(event)

    def test_on_delete_calls_proper_handler(self):
        event = {}
        self._sut.on_deleted(event)

        self._on_delete.assert_called_once_with(event)
    def setUp(self):

        self._on_create = MagicMock()
        self._on_delete = MagicMock()

        self._sut = DirChangeEventHandler(self._on_create, self._on_delete)