11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/* Copyright (c) 2000-2006 hamcrest.org 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccipackage org.hamcrest.core; 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciimport org.hamcrest.Description; 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciimport org.hamcrest.Matcher; 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciimport org.hamcrest.Factory; 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciimport org.hamcrest.BaseMatcher; 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci/** 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Is the value the same object as another value? 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccipublic class IsSame<T> extends BaseMatcher<T> { 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private final T object; 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public IsSame(T object) { 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.object = object; 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public boolean matches(Object arg) { 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return arg == object; 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public void describeTo(Description description) { 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci description.appendText("same(") .appendValue(object) .appendText(")"); 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Creates a new instance of IsSame 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @param object The predicate evaluates to true only when the argument is 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * this object. 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci @Factory 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public static <T> Matcher<T> sameInstance(T object) { 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return new IsSame<T>(object); 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci