build_client
skip_unless_mongod
/
;
skip_unless_mongod();
my
$cb
= MongoDBTest::Callback->new;
my
$conn
= build_client(
monitoring_callback
=>
$cb
->callback );
my
$topo
=
$conn
->_topology;
$cb
->clear_events;
$topo
->scan_all_servers;
my
@events_cb
= @{
$cb
->events};
my
@heartbeat_started_events
;
my
@heartbeat_succeeded_events
;
for
my
$event_idx
( 0..
$#events_cb
) {
my
$event_header
=
$events_cb
[
$event_idx
]->{
'type'
} //
""
;
if
(
$event_header
eq
'server_heartbeat_started_event'
) {
push
@heartbeat_started_events
,
delete
$events_cb
[
$event_idx
];
}
}
for
my
$event_idx
( 0..
$#events_cb
) {
my
$event_header
=
$events_cb
[
$event_idx
]->{
'type'
} //
""
;
if
(
$event_header
eq
'server_heartbeat_succeeded_event'
) {
push
@heartbeat_succeeded_events
,
delete
$events_cb
[
$event_idx
];
}
}
for
my
$i
(0 ..
$#heartbeat_succeeded_events
) {
my
$heartbeat_succeed
=
$heartbeat_succeeded_events
[
$i
];
my
$heartbeat_started
=
$heartbeat_started_events
[
$i
];
ok( looks_like_number(
$heartbeat_succeed
->{
'duration'
} ),
"duration looks like a number"
);
cmp_deeply(
$heartbeat_succeed
,
{
connectionId
=>
$heartbeat_started
->{
'connectionId'
},
duration
=> ignore(),
reply
=> ignore(),
type
=>
"server_heartbeat_succeeded_event"
},
"heartbeat succeed event appears to match the pattern it should"
);
}
done_testing;