in nfm-controller/src/metadata/eni.rs [261:315]
fn test_get_network_devices() {
let mut fake_runner = FakeCommandRunner::new();
fake_runner.add_expectation(
"ip",
&["-br", "link"],
Ok(Output {
status: ExitStatus::from_raw(0),
stdout: r#"
lo UNKNOWN 11:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
eth1 UP 22:00:00:00:00:00 <BROADCAST,MULTICAST,UP,LOWER_UP>
docker0 DOWN 33:00:00:00:00:00 <NO-CARRIER,BROADCAST,MULTICAST,UP>
eth2 UP 44:00:00:00:00:00 <BROADCAST,MULTICAST,UP,LOWER_UP>
"#
.as_bytes()
.to_vec(),
stderr: vec![],
}),
);
let net_infos: Vec<NetworkInterfaceInfo> = vec![
NetworkInterfaceInfo {
mac: "22:00:00:00:00:00".to_string(),
interface_id: "ifc-id1".to_string(),
..Default::default()
},
NetworkInterfaceInfo {
mac: "44:00:00:00:00:00".to_string(),
interface_id: "ifc-id2".to_string(),
..Default::default()
},
];
let mut eni_provider = EniMetadataProvider {
client: Client::builder().build(),
instance_id: "inst-id1".to_string(),
instance_type: "the-instance-type".into(),
network: net_infos,
command_runner: Box::new(fake_runner.clone()),
};
let expected_net_devs: Vec<NetworkDevice> = vec![
NetworkDevice {
interface_id: "ifc-id1".to_string(),
device_name: "eth1".to_string(),
},
NetworkDevice {
interface_id: "ifc-id2".to_string(),
device_name: "eth2".to_string(),
},
];
let actual_net_devs = eni_provider.get_network_devices();
assert_eq!(actual_net_devs, expected_net_devs);
assert!(fake_runner.expectations.lock().unwrap().is_empty());
}