34
34
super(TestAdvancedService, self).setUp()
35
35
self.agent = mock.Mock()
36
36
self.test_observers = event_observers.L3EventObservers()
37
# Ensure no instances for each test
38
FakeServiceA._instance = None
39
FakeServiceB._instance = None
41
38
def test_create_service(self):
42
39
"""Test agent saved and service added to observer list."""
43
my_service = FakeServiceA.instance(self.agent)
40
my_service = FakeServiceA(self.agent)
44
41
self.test_observers.add(my_service)
45
42
self.assertIn(my_service, self.test_observers.observers)
46
43
self.assertEqual(self.agent, my_service.l3_agent)
48
def test_service_is_singleton(self):
49
"""Test that two services of same time use same instance."""
50
a1 = FakeServiceA.instance(self.agent)
51
a2 = FakeServiceA.instance(self.agent)
54
45
def test_shared_observers_for_different_services(self):
55
46
"""Test different service type instances created.
57
48
The services are unique instances, with different agents, but
58
49
sharing the same observer list.
60
a = FakeServiceA.instance(self.agent)
51
a = FakeServiceA(self.agent)
61
52
self.test_observers.add(a)
62
53
self.assertEqual(self.agent, a.l3_agent)
63
54
self.assertIn(a, self.test_observers.observers)
65
56
another_agent = mock.Mock()
66
b = FakeServiceB.instance(another_agent)
57
b = FakeServiceB(another_agent)
67
58
self.test_observers.add(b)
68
59
self.assertNotEqual(a, b)
69
60
self.assertEqual(another_agent, b.l3_agent)
76
67
The services are unique instances, shared the same agent, but
77
68
are using different observer lists.
79
a = FakeServiceA.instance(self.agent)
70
a = FakeServiceA(self.agent)
80
71
self.test_observers.add(a)
81
72
other_observers = event_observers.L3EventObservers()
82
b = FakeServiceB.instance(self.agent)
73
b = FakeServiceB(self.agent)
83
74
other_observers.add(b)
85
76
self.assertNotEqual(a, b)