/* Copyright (c) 2000-2009 hamcrest.org
*/
package org.hamcrest.core;
import static org.hamcrest.AbstractMatcherTest.assertDescription;
import static org.hamcrest.AbstractMatcherTest.assertDoesNotMatch;
import static org.hamcrest.AbstractMatcherTest.assertMatches;
import static org.hamcrest.AbstractMatcherTest.assertNullSafe;
import static org.hamcrest.AbstractMatcherTest.assertUnknownTypeSafe;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.hamcrest.core.IsInstanceOf.instanceOf;
import static org.hamcrest.core.IsNot.not;
import org.hamcrest.Matcher;
import org.junit.Test;
public final class IsNotTest {
@Test public void
copesWithNullsAndUnknownTypes() {
Matcher<String> matcher = not("something");
assertNullSafe(matcher);
assertUnknownTypeSafe(matcher);
}
@Test public void
evaluatesToTheTheLogicalNegationOfAnotherMatcher() {
final Matcher<String> matcher = not(equalTo("A"));
assertMatches(matcher, "B");
assertDoesNotMatch(matcher, "A");
}
@Test public void
providesConvenientShortcutForNotEqualTo() {
final Matcher<String> matcher = not("A");
assertMatches(matcher, "B");
assertDoesNotMatch(matcher, "A");
}
@Test public void
usesDescriptionOfNegatedMatcherWithPrefix() {
assertDescription("not an instance of java.lang.String", not(instanceOf(String.class)));
assertDescription("not \"A\"", not("A"));
}
}