@@ -17,6 +17,7 @@ public class PrimitiveTypeTest {
1717 @ Test
1818 public void timestampTest () {
1919 PrimitiveValue min = PrimitiveValue .newTimestamp (Instant .EPOCH );
20+ Assert .assertEquals (min , PrimitiveValue .newTimestamp (0 ));
2021 Value minValue = min .toPb ();
2122
2223 Assert .assertEquals (0 , minValue .getUint32Value ());
@@ -27,6 +28,7 @@ public void timestampTest() {
2728 Assert .assertEquals (0 , minValue .getHigh128 ());
2829
2930 PrimitiveValue max = PrimitiveValue .newTimestamp (Instant .parse ("2105-12-31T23:59:59.999999Z" ));
31+ Assert .assertEquals (max , PrimitiveValue .newTimestamp (4291747199999999l ));
3032 Value maxValue = max .toPb ();
3133
3234 Assert .assertEquals (0 , maxValue .getUint32Value ());
@@ -35,5 +37,15 @@ public void timestampTest() {
3537 Assert .assertEquals (0 , maxValue .getInt64Value ());
3638 Assert .assertEquals (0 , maxValue .getLow128 ());
3739 Assert .assertEquals (0 , maxValue .getHigh128 ());
40+
41+ IllegalArgumentException err1 = Assert .assertThrows (
42+ IllegalArgumentException .class , () -> PrimitiveValue .newTimestamp (-1 )
43+ );
44+ Assert .assertEquals ("Negative microsSinceEpoch: -1" , err1 .getMessage ());
45+
46+ IllegalArgumentException err2 = Assert .assertThrows (
47+ IllegalArgumentException .class , () -> PrimitiveValue .newTimestamp (Instant .EPOCH .minusNanos (1 ))
48+ );
49+ Assert .assertEquals ("Instant before epoch: 1969-12-31T23:59:59.999999999Z" , err2 .getMessage ());
3850 }
3951}
0 commit comments