Example #1
0
class TestSubject(unittest.TestCase):
    @classmethod
    def setUpClass(self):
        self.s = Subject()
        self.dec_obs = DecimalViewer()
        self.hex_obs = HexViewer()

    def test_a_observer_list_shall_be_empty_initially(self):
        self.assertEqual(len(self.s._observers), 0)

    def test_b_observers_shall_be_attachable(self):
        self.s.attach(self.dec_obs)
        self.assertEqual(isinstance(self.s._observers[0], DecimalViewer), True)
        self.assertEqual(len(self.s._observers), 1)
        self.s.attach(self.hex_obs)
        self.assertEqual(isinstance(self.s._observers[1], HexViewer), True)
        self.assertEqual(len(self.s._observers), 2)

    def test_c_observers_shall_be_detachable(self):
        self.s.detach(self.dec_obs)
        # hex viewer shall be remaining if dec viewer is detached first
        self.assertEqual(isinstance(self.s._observers[0], HexViewer), True)
        self.assertEqual(len(self.s._observers), 1)
        self.s.detach(self.hex_obs)
        self.assertEqual(len(self.s._observers), 0)
class TestSubject(unittest.TestCase):

    @classmethod
    def setUpClass(self):
        self.s = Subject()
        self.dec_obs = DecimalViewer()
        self.hex_obs = HexViewer()

    def test_a_observer_list_shall_be_empty_initially(self):
        self.assertEqual(len(self.s._observers), 0)

    def test_b_observers_shall_be_attachable(self):
        self.s.attach(self.dec_obs)
        self.assertEqual(isinstance(self.s._observers[0], DecimalViewer), True)
        self.assertEqual(len(self.s._observers), 1)
        self.s.attach(self.hex_obs)
        self.assertEqual(isinstance(self.s._observers[1], HexViewer), True)
        self.assertEqual(len(self.s._observers), 2)

    def test_c_observers_shall_be_detachable(self):
        self.s.detach(self.dec_obs)
        # hex viewer shall be remaining if dec viewer is detached first
        self.assertEqual(isinstance(self.s._observers[0], HexViewer), True)
        self.assertEqual(len(self.s._observers), 1)
        self.s.detach(self.hex_obs)
        self.assertEqual(len(self.s._observers), 0)
Example #3
0
 def attach(self, observer, simulation=False):
     self.simulations.append(simulation)
     Subject.attach(self, observer)
     print('Attached; ', self.observers)
Example #4
0
 def attach(self, observer):
     Subject.attach(self, observer)
Example #5
0
 def attach(self, observer) -> None:
     Subject.attach(self, observer)
Example #6
0
 def attach(self, observer) -> None:
     """
     Adds an observer to the mdoel which listens to user input
     :param observer: The observer which should be listening 
     """
     Subject.attach(self, observer)