use crate::{Connection, test_utils::mock_socket::MockSocket};
#[tokio::test]
#[cfg(feature = "std")]
async fn peer_credentials_mock_socket() {
let expected_uid = rustix::process::getuid();
let expected_pid = rustix::process::getpid();
let socket = MockSocket::with_responses(&[]);
let mut connection = Connection::new(socket);
let creds = connection.peer_credentials().await.unwrap();
assert_eq!(
creds.unix_user_id(),
expected_uid,
"UID should match current process"
);
assert_eq!(
creds.process_id(),
expected_pid,
"PID should match current process"
);
let uid1 = creds.unix_user_id();
let pid1 = creds.process_id();
let creds2 = connection.peer_credentials().await.unwrap();
assert_eq!(uid1, creds2.unix_user_id(), "Cached UID should match");
assert_eq!(pid1, creds2.process_id(), "Cached PID should match");
}