@@ -66,15 +66,17 @@ void main() {
6666 manager.serviceRegistrationBroadcastStream,
6767 );
6868
69- // Add an event.
70- streamController.add (fooBarRegisteredEvent);
71-
72- // Verify both subscribers received the event.
73- expect (await eventQueue1.next, equals (fooBarRegisteredEvent));
74- expect (await eventQueue2.next, equals (fooBarRegisteredEvent));
69+ try {
70+ // Add an event.
71+ streamController.add (fooBarRegisteredEvent);
7572
76- await eventQueue1.cancel ();
77- await eventQueue2.cancel ();
73+ // Verify both subscribers received the event.
74+ expect (await eventQueue1.next, equals (fooBarRegisteredEvent));
75+ expect (await eventQueue2.next, equals (fooBarRegisteredEvent));
76+ } finally {
77+ await eventQueue1.cancel ();
78+ await eventQueue2.cancel ();
79+ }
7880 });
7981
8082 test (
@@ -90,14 +92,18 @@ void main() {
9092 manager.serviceRegistrationBroadcastStream,
9193 );
9294
93- // The manager only forwards registered and unregistered events.
94- streamController.add (fooBarRegisteredEvent);
95- streamController.add (fooBarUnregisteredEvent);
96- streamController.add (invalidEvent);
97- expect (await eventQueue.next, equals (fooBarRegisteredEvent));
98- expect (await eventQueue.next, equals (fooBarUnregisteredEvent));
99-
100- await eventQueue.cancel ();
95+ try {
96+ // The manager only forwards registered and unregistered events.
97+ streamController.add (fooBarRegisteredEvent);
98+ streamController.add (invalidEvent);
99+ streamController.add (fooBarUnregisteredEvent);
100+ expect (
101+ manager.serviceRegistrationBroadcastStream,
102+ emitsInOrder ([fooBarRegisteredEvent, fooBarUnregisteredEvent]),
103+ );
104+ } finally {
105+ await eventQueue.cancel ();
106+ }
101107 },
102108 );
103109
@@ -107,23 +113,26 @@ void main() {
107113 manager.mockDtd = mockDtd1;
108114 await manager.connect (fakeDtdUri);
109115
110- // The manager forwards events from the first DTD instance.
111116 final eventQueue = StreamQueue (
112117 manager.serviceRegistrationBroadcastStream,
113118 );
114- streamController1.add (fooBarRegisteredEvent);
115- expect (await eventQueue.next, equals (fooBarRegisteredEvent));
116119
117- // Connect to the second DTD instance:
118- final streamController2 = setUpEventStream (mockDtd2);
119- manager.mockDtd = mockDtd2 ;
120- await manager. connect (fakeDtdUri );
120+ try {
121+ // The manager forwards events from the first DTD instance.
122+ streamController1. add (fooBarRegisteredEvent) ;
123+ expect ( await eventQueue.next, equals (fooBarRegisteredEvent) );
121124
122- // The manager forwards events from the second DTD instance.
123- streamController2.add (bazQuxRegisteredEvent);
124- expect (await eventQueue.next, equals (bazQuxRegisteredEvent));
125+ // Connect to the second DTD instance:
126+ final streamController2 = setUpEventStream (mockDtd2);
127+ manager.mockDtd = mockDtd2;
128+ await manager.connect (fakeDtdUri);
125129
126- await eventQueue.cancel ();
130+ // The manager forwards events from the second DTD instance.
131+ streamController2.add (bazQuxRegisteredEvent);
132+ expect (await eventQueue.next, equals (bazQuxRegisteredEvent));
133+ } finally {
134+ await eventQueue.cancel ();
135+ }
127136 });
128137
129138 test ('continues to forward events while DTD is reconnecting' , () async {
@@ -138,25 +147,26 @@ void main() {
138147 final eventQueue = StreamQueue (
139148 manager.serviceRegistrationBroadcastStream,
140149 );
141-
142- // Send events while DTD is reconnecting.
143- manager.connectionState.addListener (() {
144- if (manager.connectionState.value is NotConnectedDTDState ) {
145- streamController.add (fooBarRegisteredEvent);
146- }
147- if (manager.connectionState.value is ConnectingDTDState ) {
148- streamController.add (bazQuxRegisteredEvent);
149- }
150- });
151-
152- // Trigger a done event to force DTD to reconnect.
153- dtdDoneCompleter.complete ();
154-
155- // Verify the events sent during reconneciton were received.
156- expect (await eventQueue.next, equals (fooBarRegisteredEvent));
157- expect (await eventQueue.next, equals (bazQuxRegisteredEvent));
158-
159- await eventQueue.cancel ();
150+ try {
151+ // Send events while DTD is reconnecting.
152+ manager.connectionState.addListener (() {
153+ if (manager.connectionState.value is NotConnectedDTDState ) {
154+ streamController.add (fooBarRegisteredEvent);
155+ }
156+ if (manager.connectionState.value is ConnectingDTDState ) {
157+ streamController.add (bazQuxRegisteredEvent);
158+ }
159+ });
160+
161+ // Trigger a done event to force DTD to reconnect.
162+ dtdDoneCompleter.complete ();
163+
164+ // Verify the events sent during reconnection were received.
165+ expect (await eventQueue.next, equals (fooBarRegisteredEvent));
166+ expect (await eventQueue.next, equals (bazQuxRegisteredEvent));
167+ } finally {
168+ await eventQueue.cancel ();
169+ }
160170 });
161171 });
162172}
0 commit comments