@@ -29,8 +29,9 @@ mod service_monitor {
29
29
}
30
30
31
31
#[ test]
32
- fn publishes_added_services_when_configured ( ) {
33
- const NUMBER_OF_SERVICES_ADDED : usize = 3 ;
32
+ fn publishes_added_and_removed_services_when_configured ( ) {
33
+ const NUMBER_OF_SERVICES_ADDED : usize = 5 ;
34
+ const NUMBER_OF_SERVICES_REMOVED : usize = 3 ;
34
35
35
36
let iceoryx_config = generate_isolated_config ( ) ;
36
37
let node = NodeBuilder :: new ( )
@@ -48,7 +49,6 @@ mod service_monitor {
48
49
send_notifications : false ,
49
50
} ;
50
51
let mut sut = Monitor :: < ipc:: Service > :: new ( & monitor_config, & iceoryx_config) ;
51
- sut. spin ( ) ;
52
52
53
53
// subscribe to the monitoring service
54
54
let service_name = ServiceName :: new ( service_name_string. as_str ( ) ) . unwrap ( ) ;
@@ -70,29 +70,31 @@ mod service_monitor {
70
70
. unwrap ( ) ;
71
71
services. push ( service) ;
72
72
}
73
+ sut. spin ( ) ;
73
74
74
- // verify the added services are published on next monitor iteration
75
+ // remove some services
76
+ for _ in 0 ..NUMBER_OF_SERVICES_REMOVED {
77
+ services. pop ( ) ;
78
+ }
75
79
sut. spin ( ) ;
76
80
77
- let mut num_received = 0 ;
81
+ let mut num_added = 0 ;
82
+ let mut num_removed = 0 ;
78
83
while let Ok ( Some ( event) ) = subscriber. receive ( ) {
79
84
match event. payload ( ) {
80
- DiscoveryEvent :: Added ( service ) => {
81
- println ! ( "added {:?}" , service . name ( ) )
85
+ DiscoveryEvent :: Added ( _ ) => {
86
+ num_added += 1 ;
82
87
}
83
- DiscoveryEvent :: Removed ( service ) => {
84
- println ! ( "removed {}" , service . name ( ) )
88
+ DiscoveryEvent :: Removed ( _ ) => {
89
+ num_removed += 1 ;
85
90
}
86
91
}
87
- num_received += 1 ;
88
92
}
89
93
90
- assert_that ! ( num_received, eq NUMBER_OF_SERVICES_ADDED ) ;
94
+ assert_that ! ( num_added, eq NUMBER_OF_SERVICES_ADDED ) ;
95
+ assert_that ! ( num_removed, eq NUMBER_OF_SERVICES_REMOVED ) ;
91
96
}
92
97
93
- #[ test]
94
- fn publishes_removed_services_when_configured ( ) { }
95
-
96
98
#[ test]
97
99
fn sends_notifications_when_configured ( ) { }
98
100
0 commit comments