hasUnixNanoseconds function
Matches the full precision Unix time of a HasInstant.
The seconds and nanoseconds parts must be matched separately to avoid overflow.
Implementation
Matcher hasUnixNanoseconds(Object seconds, Object nanoseconds) =>
isA<HasInstant>().having(
(t) => t.toInstant().unixTimestamp,
'unixTimestamp',
isA<Timespan>()
.having((u) => u.seconds, 'seconds', seconds)
.having((u) => u.nanosecondPart, 'nanosecondPart', nanoseconds));