/* Copyright (c) 2000-2006 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.IsSame.sameInstance;
import static org.hamcrest.core.IsSame.theInstance;
import org.hamcrest.Matcher;
import org.junit.Test;
public final class IsSameTest {
@Test public void
copesWithNullsAndUnknownTypes() {
Matcher<String> matcher = sameInstance("irrelevant");
assertNullSafe(matcher);
assertUnknownTypeSafe(matcher);
}
@Test public void
evaluatesToTrueIfArgumentIsReferenceToASpecifiedObject() {
Object o1 = new Object();
Matcher<Object> matcher = sameInstance(o1);
assertMatches(matcher, o1);
assertDoesNotMatch(matcher, new Object());
}
@Test public void
alternativeFactoryMethodAlsoMatchesOnlyIfArgumentIsReferenceToASpecifiedObject() {
Object o1 = new Object();
Matcher<Object> matcher = theInstance(o1);
assertMatches(matcher, o1);
assertDoesNotMatch(matcher, new Object());
}
@Test public void
returnsReadableDescriptionFromToString() {
assertDescription("sameInstance(\"ARG\")", sameInstance("ARG"));
}
@Test public void
returnsReadableDescriptionFromToStringWhenInitialisedWithNull() {
assertDescription("sameInstance(null)", sameInstance(null));
}
}