def test_notification_of_change(self): """ Test notifications with Transition object. """ dispatcher = self.dispatcher element = UML.Transition() g = element.guard = UML.Constraint() dispatcher.register_handler(self._handler, element, 'guard.specification') assert len(dispatcher._handlers) == 2 assert not self.events g.specification = 'x' assert len(self.events) == 1, self.events element.guard = UML.Constraint() assert len(self.events) == 2, self.events
def test_notification_with_incompatible_elements(self): """ Test unregister with composition. Use Class.ownedOperation.precondition. """ dispatcher = self.dispatcher element = UML.Transition() g = element.guard = UML.Constraint() dispatcher.register_handler(self._handler, element, 'guard.specification') assert len(dispatcher._handlers) == 2 assert not self.events assert (element.guard, UML.Constraint.specification) in list( dispatcher._handlers.keys()), list(dispatcher._handlers.keys()) g.specification = 'x' assert len(self.events) == 1, self.events g.specification = 'a' assert len(self.events) == 2, self.events