use fast_ntfs::NtfsTime;
#[cfg(feature = "time")]
#[test]
fn converts_time_offset_datetime_at_supported_boundaries() {
use time::macros::datetime;
let dt = datetime!(2013-01-05 18:15 UTC);
let nt = NtfsTime::try_from(dt).unwrap();
assert_eq!(nt.nt_timestamp(), 130_018_833_000_000_000);
assert_eq!(time::OffsetDateTime::from(nt), dt);
assert_eq!(
NtfsTime::try_from(datetime!(1601-01-01 0:00 UTC))
.unwrap()
.nt_timestamp(),
0
);
assert!(NtfsTime::try_from(datetime!(1600-12-31 23:59:59 UTC)).is_err());
}
#[test]
fn converts_system_time() {
use std::time::{Duration, SystemTime};
const EPOCH_DIFFERENCE_IN_SECONDS: u64 = 11_644_473_600;
let windows_epoch = SystemTime::UNIX_EPOCH
.checked_sub(Duration::from_secs(EPOCH_DIFFERENCE_IN_SECONDS))
.unwrap();
assert_eq!(NtfsTime::try_from(windows_epoch).unwrap().nt_timestamp(), 0);
let now = SystemTime::now();
let ntfs_time = NtfsTime::try_from(now).unwrap();
assert!(ntfs_time.nt_timestamp() > 132_539_328_000_000_000);
}