use screencapturekit::audio_devices::AudioInputDevice;
#[test]
fn test_list_audio_devices() {
let devices = AudioInputDevice::list();
println!("Found {} audio input devices", devices.len());
for device in &devices {
println!(
" {} - {} (default: {})",
device.id, device.name, device.is_default
);
}
}
#[test]
fn test_default_device() {
if let Some(device) = AudioInputDevice::default_device() {
println!("Default device: {} - {}", device.id, device.name);
assert!(device.is_default);
} else {
println!("No default audio input device");
}
}
#[test]
fn default_device_is_present_in_the_listed_devices() {
let (devices, default_index) = AudioInputDevice::list_with_default();
if let Some(index) = default_index {
let default = devices
.get(index)
.expect("list_with_default returned an index outside the device list");
assert!(
default.is_default,
"device at the reported default index does not carry is_default"
);
}
assert!(
devices.iter().filter(|d| d.is_default).count() <= 1,
"more than one device claims to be the system default"
);
}
#[test]
fn list_entries_have_non_empty_id_and_name() {
for device in AudioInputDevice::list() {
assert!(!device.id.is_empty(), "device id must not be empty");
assert!(!device.name.is_empty(), "device name must not be empty");
}
}
#[test]
fn repeated_snapshots_are_stable() {
let first = AudioInputDevice::list();
for _ in 0..8 {
let again = AudioInputDevice::list();
assert_eq!(
first.len(),
again.len(),
"device count changed across back-to-back snapshots"
);
}
}