use crate::*;
use chrono::{TimeZone, Utc};
use std::io;
use std::sync::Once;
use std::time::Duration;
static INIT: Once = Once::new();
pub fn initialize() {
INIT.call_once(|| {
let _ = env_logger::builder().format_timestamp_micros().is_test(true).try_init();
});
}
pub fn generate_ping_result_test_samples() -> Vec<PingResult> {
vec![
PingResult::new(
&Utc.ymd(2021, 7, 6).and_hms_milli(9, 10, 11, 12),
1,
"TCP",
"1.2.3.4:443".parse().unwrap(),
"5.6.7.8:8080".parse().unwrap(),
true,
true,
Duration::from_millis(10),
false,
None,
None,
),
PingResult::new(
&Utc.ymd(2021, 7, 6).and_hms_milli(9, 10, 11, 12),
1,
"TCP",
"1.2.3.4:443".parse().unwrap(),
"5.6.7.8:8080".parse().unwrap(),
false,
false,
Duration::from_millis(1000),
true,
None,
None,
),
PingResult::new(
&Utc.ymd(2021, 7, 6).and_hms_milli(9, 10, 11, 12),
1,
"TCP",
"1.2.3.4:443".parse().unwrap(),
"5.6.7.8:8080".parse().unwrap(),
false,
true,
Duration::from_millis(20),
false,
Some(PingClientWarning::AppHandshakeFailed(Box::new(io::Error::new(io::ErrorKind::ConnectionAborted, "connect aborted")))),
None,
),
PingResult::new(
&Utc.ymd(2021, 7, 6).and_hms_milli(9, 10, 11, 12),
1,
"TCP",
"1.2.3.4:443".parse().unwrap(),
"5.6.7.8:8080".parse().unwrap(),
false,
true,
Duration::from_millis(20),
false,
Some(PingClientWarning::DisconnectFailed(Box::new(io::Error::new(io::ErrorKind::TimedOut, "disconnect timeout")))),
None,
),
PingResult::new(
&Utc.ymd(2021, 7, 6).and_hms_milli(9, 10, 11, 12),
1,
"TCP",
"1.2.3.4:443".parse().unwrap(),
"5.6.7.8:8080".parse().unwrap(),
false,
false,
Duration::from_millis(0),
false,
None,
Some(PingClientError::PingFailed(Box::new(io::Error::new(io::ErrorKind::ConnectionRefused, "connect failed")))),
),
PingResult::new(
&Utc.ymd(2021, 7, 6).and_hms_milli(9, 10, 11, 12),
1,
"TCP",
"1.2.3.4:443".parse().unwrap(),
"5.6.7.8:8080".parse().unwrap(),
false,
false,
Duration::from_millis(0),
false,
None,
Some(PingClientError::PreparationFailed(Box::new(io::Error::new(io::ErrorKind::AddrInUse, "address in use")))),
),
]
}