package org.hamcrest.core; import org.hamcrest.Matcher; import org.junit.Test; import static org.hamcrest.AbstractMatcherTest.*; import static org.hamcrest.core.IsSame.sameInstance; import static org.hamcrest.core.IsSame.theInstance; public final class IsSameTest { @Test public void copesWithNullsAndUnknownTypes() { Matcher matcher = sameInstance("irrelevant"); assertNullSafe(matcher); assertUnknownTypeSafe(matcher); } @Test public void evaluatesToTrueIfArgumentIsReferenceToASpecifiedObject() { Object o1 = new Object(); Matcher matcher = sameInstance(o1); assertMatches(matcher, o1); assertDoesNotMatch(matcher, new Object()); } @Test public void alternativeFactoryMethodAlsoMatchesOnlyIfArgumentIsReferenceToASpecifiedObject() { Object o1 = new Object(); Matcher 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)); } }