def testMediatorReregistration(self): """ Tests registering the same mediator twice. A subsequent notification should only illicit one response. Also, since reregistration was causing 2 observers to be created, ensure that after removal of the mediator there will be no further response. Added for the fix deployed in version 2.0.4 """ view = View('test') view.register_mediator(utils.view.ViewTestMediator5(self)) # try to register another instance of that mediator (uses the same NAME constant). view.register_mediator(utils.view.ViewTestMediator5(self)) self.counter = 0 view.notify_observers(Notification(self.NOTE5)) self.assertEqual(1, self.counter) view.remove_mediator(utils.view.ViewTestMediator5.NAME) self.assertEqual(True, view.retrieve_mediator(utils.view.ViewTestMediator5.NAME ) is None) self.counter=0 view.notify_observers(Notification(self.NOTE5)) self.assertEqual(0, self.counter)
def testRemoveOneOfTwoMediatorsAndSubsequentNotify(self): """ViewTest: Test removing one of two Mediators and subsequent notify()""" view = View('test') view.register_mediator(utils.view.ViewTestMediator2(self)) view.register_mediator(utils.view.ViewTestMediator3(self)) view.notify_observers(Notification(self.NOTE1)) self.assertEqual(True, self.lastNotification == self.NOTE1) view.notify_observers(Notification(self.NOTE2)) self.assertEqual(True, self.lastNotification == self.NOTE2) view.notify_observers(Notification(self.NOTE3)) self.assertEqual(True, self.lastNotification == self.NOTE3) view.remove_mediator(utils.view.ViewTestMediator2.NAME) self.assertEqual(True, view.retrieve_mediator(utils.view.ViewTestMediator2.NAME) is None) self.lastNotification = None view.notify_observers(Notification(self.NOTE1)) self.assertEqual(True, self.lastNotification != self.NOTE1) view.notify_observers(Notification(self.NOTE2)) self.assertEqual(True, self.lastNotification != self.NOTE2) view.notify_observers(Notification(self.NOTE3)) self.assertEqual(True, self.lastNotification == self.NOTE3) self.__cleanup()
def testRemoveSelf(self): view = View('test') view.register_mediator(utils.view.ViewTestMediator2(self)) view.register_mediator(utils.view.ViewTestMediator3(self)) self.assertTrue(self.NOTE5 in view.observer_map) view.notify_observers(Notification(self.NOTE5)) self.assertFalse(self.NOTE5 in view.observer_map)
def testRegisterAndRetrieveMediator(self): """ViewTest: Test register_mediator() and retrieve_mediator()""" view = View('test') viewTestMediator = utils.view.ViewTestMediator(self) view.register_mediator(viewTestMediator) mediator = view.retrieve_mediator(utils.view.ViewTestMediator.NAME) self.assertEqual(True, isinstance(mediator, utils.view.ViewTestMediator)) self.__cleanup()
def testHasMediator(self): """ViewTest: Test has_mediator()""" view = View('test') meditr = Mediator('hasMediatorTest', self) view.register_mediator(meditr) self.assertEqual(True, view.has_mediator('hasMediatorTest')) view.remove_mediator('hasMediatorTest') self.assertEqual(False, view.has_mediator('hasMediatorTest')) self.__cleanup()
def testOnRegisterAndOnRemove(self): """ViewTest: Test onRegsiter() and on_remove()""" view = View('test') mediator = utils.view.ViewTestMediator4(self) view.register_mediator(mediator) self.assertEqual(True, self.onRegisterCalled) view.remove_mediator(utils.view.ViewTestMediator4.NAME) self.assertEqual(True, self.onRemoveCalled) self.__cleanup()
def testRegisterAndRemoveMediator(self): """ViewTest: Test register_mediator() and remove_mediator()""" view = View('test') meditr = Mediator('testing', self) view.register_mediator(meditr) removedMediator = view.remove_mediator('testing') self.assertEqual(True, removedMediator.get_mediator_name() == 'testing') self.assertEqual(True, view.retrieve_mediator('testing') is None) self.__cleanup()
def testSuccessiveRegisterAndRemoveMediator(self): """ViewTest: Test Successive register_mediator() and remove_mediator()""" view = View('test') view.register_mediator(utils.view.ViewTestMediator(self)) self.assertEqual(True, isinstance(view.retrieve_mediator(utils.view.ViewTestMediator.NAME), utils.view.ViewTestMediator)) view.remove_mediator(utils.view.ViewTestMediator.NAME) self.assertEqual(True, view.retrieve_mediator(utils.view.ViewTestMediator.NAME) is None) self.assertEqual(True, view.remove_mediator(utils.view.ViewTestMediator.NAME) is None) view.register_mediator(utils.view.ViewTestMediator(self)) self.assertEqual(True, isinstance(view.retrieve_mediator(utils.view.ViewTestMediator.NAME), utils.view.ViewTestMediator)) view.remove_mediator(utils.view.ViewTestMediator.NAME) self.assertEqual(True, view.retrieve_mediator(utils.view.ViewTestMediator.NAME) is None) self.__cleanup()