package pl.droidsonroids.gif; import android.graphics.drawable.Drawable; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import pl.droidsonroids.gif.MultiCallback.CallbackWeakReference; import static org.assertj.core.api.Java6Assertions.assertThat; @RunWith(MockitoJUnitRunner.class) public class CallbackWeakReferenceTest { @Mock Drawable.Callback callback; @Mock Drawable.Callback anotherCallback; @Test public void testEquals() throws Exception { final CallbackWeakReference reference = new CallbackWeakReference(callback); final CallbackWeakReference anotherReference = new CallbackWeakReference(callback); assertThat(reference).isEqualTo(anotherReference); } @Test public void testNotEqualReferences() throws Exception { final CallbackWeakReference reference = new CallbackWeakReference(callback); final CallbackWeakReference anotherReference = new CallbackWeakReference(anotherCallback); assertThat(reference).isNotEqualTo(anotherReference); } @Test public void testNotEqualDifferentObjects() throws Exception { final CallbackWeakReference reference = new CallbackWeakReference(callback); assertThat(reference).isNotEqualTo(null); assertThat(reference).isNotEqualTo(callback); } @Test public void testHashCode() throws Exception { final CallbackWeakReference reference = new CallbackWeakReference(callback); final CallbackWeakReference anotherReference = new CallbackWeakReference(callback); assertThat(reference.hashCode()).isEqualTo(anotherReference.hashCode()); } @Test public void testHashCodeNull() throws Exception { final CallbackWeakReference reference = new CallbackWeakReference(callback); final CallbackWeakReference anotherReference = new CallbackWeakReference(null); assertThat(reference.hashCode()).isNotEqualTo(anotherReference.hashCode()); } }