use super::{Device, Result, Validate};
pub struct Keychain {
    device: Device,
}
impl Device {
        pub fn keychain(&self) -> Keychain {
        Keychain {
            device: self.clone(),
        }
    }
}
impl Keychain {
        pub fn reset(&self) -> Result<()> {
        self.device
            .simctl()
            .command("keychain")
            .arg(&self.device.udid)
            .arg("reset")
            .output()?
            .validate()
    }
}
#[cfg(test)]
mod tests {
    use serial_test::serial;
    use super::*;
    use crate::mock;
    #[test]
    #[serial]
    fn test_keychain_reset() -> Result<()> {
        mock::device()?.boot()?;
        mock::device()?.keychain().reset()?;
        mock::device()?.shutdown()?;
        Ok(())
    }
}