示例#1
0
    def testMediator(self):
        M = FwMediator()
        
        eventgroup = "testEvents"
        C1 = TColleague(M, eventgroup)
        C2 = TColleague(M, eventgroup)
        assert C1.mediator == M and C2.mediator == M
        
        M.register(C1, eventgroup, "Add", "Change", "Del")
        M.register(C2, eventgroup, "Add", "Del")
        
        E1 = FwEventFactory(C1, "Add")
        E2 = FwEventFactory(C1, "Change") 
        assert E1.eventgroup == eventgroup and E2.eventgroup == eventgroup

        C1.report(E1)
        assert C2.myevent == 1 and C1.myevent == 0
        
        # C2 isn't registred for "Change" actions
        C1.report(E2)
        assert C2.myevent == 1 and C1.myevent == 0
       
        # register another event 
        M.register(C2, eventgroup, "Change")
        C1.report(E2)
        assert C2.myevent == 2 and C1.myevent == 0
        
        # unregister from all events
        M.unregister(C2, eventgroup, "Add", "Change")
        C1.report(E1)
        C1.report(E2)
        assert C2.myevent == 2 and C1.myevent == 0