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 = puremvc.core.View.getInstance() view.registerMediator(utils.view.ViewTestMediator5(self)) # try to register another instance of that mediator (uses the same NAME constant). view.registerMediator(utils.view.ViewTestMediator5(self)) self.counter = 0 view.notifyObservers(puremvc.patterns.observer.Notification(self.NOTE5)) self.assertEqual(1, self.counter) view.removeMediator(utils.view.ViewTestMediator5.NAME) self.assertEqual(True, view.retrieveMediator(utils.view.ViewTestMediator5.NAME ) == None) self.counter=0 view.notifyObservers(puremvc.patterns.observer.Notification(self.NOTE5)) self.assertEqual(0, self.counter)
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 = puremvc.core.View.getInstance() view.registerMediator(utils.view.ViewTestMediator5(self)) # try to register another instance of that mediator (uses the same NAME constant). view.registerMediator(utils.view.ViewTestMediator5(self)) self.counter = 0 view.notifyObservers(puremvc.patterns.observer.Notification( self.NOTE5)) self.assertEqual(1, self.counter) view.removeMediator(utils.view.ViewTestMediator5.NAME) self.assertEqual( True, view.retrieveMediator(utils.view.ViewTestMediator5.NAME) == None) self.counter = 0 view.notifyObservers(puremvc.patterns.observer.Notification( self.NOTE5)) self.assertEqual(0, self.counter)
def testRemoveSelf(self): view = puremvc.core.View.getInstance() view.registerMediator(utils.view.ViewTestMediator2(self)) view.registerMediator(utils.view.ViewTestMediator3(self)) self.assertTrue(self.NOTE5 in view.observerMap) view.notifyObservers(puremvc.patterns.observer.Notification(self.NOTE5)) self.assertFalse(self.NOTE5 in view.observerMap)
def testRemoveSelf(self): view = puremvc.core.View.getInstance() view.registerMediator(utils.view.ViewTestMediator2(self)) view.registerMediator(utils.view.ViewTestMediator3(self)) self.assertTrue(self.NOTE5 in view.observerMap) view.notifyObservers(puremvc.patterns.observer.Notification( self.NOTE5)) self.assertFalse(self.NOTE5 in view.observerMap)
def testRemoveMediatorAndSubsequentNotify(self): """ViewTest: Test removeMediator() and subsequent nofity()""" view = puremvc.core.View.getInstance() view.registerMediator(utils.view.ViewTestMediator2(self)) view.notifyObservers(puremvc.patterns.observer.Notification(self.NOTE1)) self.assertEqual(True, self.lastNotification == self.NOTE1) view.notifyObservers(puremvc.patterns.observer.Notification(self.NOTE2)) self.assertEqual(True, self.lastNotification == self.NOTE2) view.removeMediator(utils.view.ViewTestMediator2.NAME) self.assertEqual(True, view.retrieveMediator(utils.view.ViewTestMediator2.NAME) == None) self.lastNotification = None view.notifyObservers(puremvc.patterns.observer.Notification(self.NOTE1)) self.assertEqual(True, self.lastNotification != self.NOTE1) view.notifyObservers(puremvc.patterns.observer.Notification(self.NOTE2)) self.assertEqual(True, self.lastNotification != self.NOTE2) self.__cleanup()
def testRemoveMediatorAndSubsequentNotify(self): """ViewTest: Test removeMediator() and subsequent nofity()""" view = puremvc.core.View.getInstance() view.registerMediator(utils.view.ViewTestMediator2(self)) view.notifyObservers(puremvc.patterns.observer.Notification( self.NOTE1)) self.assertEqual(True, self.lastNotification == self.NOTE1) view.notifyObservers(puremvc.patterns.observer.Notification( self.NOTE2)) self.assertEqual(True, self.lastNotification == self.NOTE2) view.removeMediator(utils.view.ViewTestMediator2.NAME) self.assertEqual( True, view.retrieveMediator(utils.view.ViewTestMediator2.NAME) == None) self.lastNotification = None view.notifyObservers(puremvc.patterns.observer.Notification( self.NOTE1)) self.assertEqual(True, self.lastNotification != self.NOTE1) view.notifyObservers(puremvc.patterns.observer.Notification( self.NOTE2)) self.assertEqual(True, self.lastNotification != self.NOTE2) self.__cleanup()
def testRegisterAndNotifyObserver(self): """ViewTest: Test registerObserver() and notifyObservers()""" self.viewTestVar = 0 def viewTestMethod(note): self.viewTestVar = note.getBody() view = puremvc.core.View.getInstance() obsvr = puremvc.patterns.observer.Observer(viewTestMethod, self) view.registerObserver(utils.view.ViewTestNote.NAME, obsvr) note = utils.view.ViewTestNote.create(10) view.notifyObservers(note) self.assertEqual(True, self.viewTestVar == 10)
def testRegisterAndNotifyObserver(self): """ViewTest: Test registerObserver() and notifyObservers()""" self.viewTestVar = 0 def viewTestMethod(note): self.viewTestVar = note.getBody() view = org.puremvc.python.core.View.getInstance() obsvr = org.puremvc.python.patterns.observer.Observer(viewTestMethod, self) view.registerObserver(utils.view.ViewTestNote.NAME, obsvr) note = utils.view.ViewTestNote.create(10) view.notifyObservers(note) self.assertEqual(True, self.viewTestVar == 10)
def testRemoveOneOfTwoMediatorsAndSubsequentNotify(self): """ViewTest: Test removing one of two Mediators and subsequent notify()""" view = org.puremvc.python.core.View.getInstance() view.registerMediator(utils.view.ViewTestMediator2(self)) view.registerMediator(utils.view.ViewTestMediator3(self)) view.notifyObservers(org.puremvc.python.patterns.observer.Notification(self.NOTE1)) self.assertEqual(True, self.lastNotification == self.NOTE1) view.notifyObservers(org.puremvc.python.patterns.observer.Notification(self.NOTE2)) self.assertEqual(True, self.lastNotification == self.NOTE2) view.notifyObservers(org.puremvc.python.patterns.observer.Notification(self.NOTE3)) self.assertEqual(True, self.lastNotification == self.NOTE3) view.removeMediator(utils.view.ViewTestMediator2.NAME) self.assertEqual(True, view.retrieveMediator(utils.view.ViewTestMediator2.NAME) == None) self.lastNotification = None view.notifyObservers(org.puremvc.python.patterns.observer.Notification(self.NOTE1)) self.assertEqual(True, self.lastNotification != self.NOTE1) view.notifyObservers(org.puremvc.python.patterns.observer.Notification(self.NOTE2)) self.assertEqual(True, self.lastNotification != self.NOTE2) view.notifyObservers(org.puremvc.python.patterns.observer.Notification(self.NOTE3)) self.assertEqual(True, self.lastNotification == self.NOTE3) self.__cleanup()