Fix Decima64.valueOf(String)
[yangtools.git] / yang / yang-common / src / test / java / org / opendaylight / yangtools / yang / common / Uint64Test.java
index 521eb33690df0a449a620af4b7a279900081b836..cc79d621c02c12c0d8bccee631f580295f902856 100644 (file)
@@ -34,6 +34,19 @@ public class Uint64Test {
         assertEquals(2170205184637009920L, Uint64.valueOf(new BigInteger("2170205184637009920")).longValue());
     }
 
+    @Test
+    public void testSaturatedOf() {
+        assertEquals(127, Uint64.saturatedOf((byte) 127).byteValue());
+        assertEquals(127, Uint64.saturatedOf((short) 127).byteValue());
+        assertEquals(127, Uint64.saturatedOf(127).byteValue());
+        assertEquals(127, Uint64.saturatedOf(127L).byteValue());
+
+        assertEquals(255, Uint64.saturatedOf((short) 255).intValue());
+        assertEquals(255, Uint64.saturatedOf(255).intValue());
+        assertEquals(255L, Uint64.saturatedOf(255L).longValue());
+        assertEquals(2170205184637009920L, Uint64.saturatedOf(new BigInteger("2170205184637009920")).longValue());
+    }
+
     @Test
     public void testCompareTo() {
         final Uint64 five = Uint64.valueOf(5);
@@ -144,12 +157,20 @@ public class Uint64Test {
         assertThrows(IllegalArgumentException.class, () -> Uint64.valueOf(-1));
         assertThrows(IllegalArgumentException.class, () -> Uint64.valueOf(-1L));
         assertThrows(IllegalArgumentException.class, () -> Uint64.valueOf(new BigInteger("-1")));
+
+        assertEquals(Uint64.ZERO, Uint64.saturatedOf((byte)-1));
+        assertEquals(Uint64.ZERO, Uint64.saturatedOf((short)-1));
+        assertEquals(Uint64.ZERO, Uint64.saturatedOf(-1));
+        assertEquals(Uint64.ZERO, Uint64.saturatedOf(-1L));
+        assertEquals(Uint64.ZERO, Uint64.saturatedOf(new BigInteger("-1")));
     }
 
     @Test
     public void testLargeValues() {
         final BigInteger big = new BigInteger("10000000000000000", 16);
         assertThrows(IllegalArgumentException.class, () -> Uint64.valueOf(big));
+
+        assertEquals(Uint64.MAX_VALUE, Uint64.saturatedOf(big));
     }
 
     @Test