diff --git a/utils/misc/src/test/java/org/onlab/util/MatchTest.java b/utils/misc/src/test/java/org/onlab/util/MatchTest.java index 498fbc6fcf..bbcf7ffe8f 100644 --- a/utils/misc/src/test/java/org/onlab/util/MatchTest.java +++ b/utils/misc/src/test/java/org/onlab/util/MatchTest.java @@ -43,6 +43,10 @@ public class MatchTest { assertFalse(m3.matches(null)); assertFalse(m3.matches("bar")); assertTrue(m3.matches("foo")); + + Match m4 = Match.ifValue(new byte[8]); + assertTrue(m4.matches(new byte[8])); + assertFalse(m4.matches(new byte[7])); } @Test @@ -54,6 +58,8 @@ public class MatchTest { assertEquals(m1, m2); assertFalse(Objects.equal(m1, m3)); assertFalse(Objects.equal(m3, m4)); + Object o = new Object(); + assertFalse(Objects.equal(m1, o)); } @Test @@ -64,4 +70,49 @@ public class MatchTest { Match m3 = m2.map(s -> "bar"); assertTrue(m3.matches("bar")); } + + @Test + public void testIfNotNull() { + Match m = Match.ifNotNull(); + assertFalse(m.matches(null)); + assertTrue(m.matches("foo")); + } + + @Test + public void testIfNotValue() { + Match m1 = Match.ifNotValue(null); + Match m2 = Match.ifNotValue("foo"); + assertFalse(m1.matches(null)); + assertFalse(m2.matches("foo")); + } + + @Test + public void testToString() { + Match m1 = Match.any(); + Match m2 = Match.any(); + Match m3 = Match.ifValue("foo"); + Match m4 = Match.ifValue("foo"); + Match m5 = Match.ifNotValue("foo"); + + String note = "Results of toString() should be consistent -- "; + + assertTrue(note, m1.toString().equals(m2.toString())); + assertTrue(note, m3.toString().equals(m4.toString())); + assertFalse(note, m4.toString().equals(m5.toString())); + } + + @Test + public void testHashCode() { + Match m1 = Match.ifValue("foo"); + Match m2 = Match.ifNotValue("foo"); + Match m3 = Match.ifValue("foo"); + Match m4 = Match.ifNotNull(); + Match m5 = Match.ifNull(); + + assertTrue(m1.hashCode() == m3.hashCode()); + assertFalse(m2.hashCode() == m1.hashCode()); + assertFalse(m4.hashCode() == m5.hashCode()); + + } + }