1c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinpackage org.hamcrest.core; 2c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 3c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport org.hamcrest.Matcher; 4c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport org.junit.Test; 5c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 6c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport static org.hamcrest.AbstractMatcherTest.*; 7c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport static org.hamcrest.core.IsEqual.equalTo; 8c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport static org.hamcrest.core.IsInstanceOf.instanceOf; 9c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport static org.hamcrest.core.IsNot.not; 10c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 11c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinpublic final class IsNotTest { 12c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 13c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Test public void 14c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin copesWithNullsAndUnknownTypes() { 15c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin Matcher<String> matcher = not("something"); 16c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 17c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertNullSafe(matcher); 18c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertUnknownTypeSafe(matcher); 19c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 20c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 21c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Test public void 22c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin evaluatesToTheTheLogicalNegationOfAnotherMatcher() { 23c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin final Matcher<String> matcher = not(equalTo("A")); 24c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 25c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertMatches(matcher, "B"); 26c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDoesNotMatch(matcher, "A"); 27c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 28c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 29c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Test public void 30c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin providesConvenientShortcutForNotEqualTo() { 31c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin final Matcher<String> matcher = not("A"); 32c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 33c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertMatches(matcher, "B"); 34c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDoesNotMatch(matcher, "A"); 35c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 36c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin 37c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin @Test public void 38c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin usesDescriptionOfNegatedMatcherWithPrefix() { 39c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDescription("not an instance of java.lang.String", not(instanceOf(String.class))); 40c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin assertDescription("not \"A\"", not("A")); 41c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin } 42c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin} 43