From c37fdacfa38916761b14848b8147092681be3e3d Mon Sep 17 00:00:00 2001 From: AlexCD Date: Sat, 5 Mar 2022 18:51:12 +0200 Subject: [PATCH] Fixes #2331 : restored fix for spy equals/hashcode --- .../bytebuddy/TypeCachingBytecodeGenerator.java | 2 ++ .../mockitousage/spies/SpyingOnRealObjectsTest.java | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/main/java/org/mockito/internal/creation/bytebuddy/TypeCachingBytecodeGenerator.java b/src/main/java/org/mockito/internal/creation/bytebuddy/TypeCachingBytecodeGenerator.java index 32e3d8bace..5ce57b1115 100644 --- a/src/main/java/org/mockito/internal/creation/bytebuddy/TypeCachingBytecodeGenerator.java +++ b/src/main/java/org/mockito/internal/creation/bytebuddy/TypeCachingBytecodeGenerator.java @@ -5,12 +5,14 @@ package org.mockito.internal.creation.bytebuddy; import java.lang.ref.ReferenceQueue; +import java.util.Objects; import java.util.Set; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; import net.bytebuddy.TypeCache; import org.mockito.mock.SerializableMode; +import org.mockito.stubbing.Answer; class TypeCachingBytecodeGenerator extends ReferenceQueue implements BytecodeGenerator { diff --git a/src/test/java/org/mockitousage/spies/SpyingOnRealObjectsTest.java b/src/test/java/org/mockitousage/spies/SpyingOnRealObjectsTest.java index 30d3784582..a46b276e06 100644 --- a/src/test/java/org/mockitousage/spies/SpyingOnRealObjectsTest.java +++ b/src/test/java/org/mockitousage/spies/SpyingOnRealObjectsTest.java @@ -9,6 +9,7 @@ import static org.junit.Assume.assumeTrue; import static org.mockito.Mockito.*; +import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.List; @@ -192,4 +193,13 @@ public void shouldSayNiceMessageWhenSpyingOnPrivateClass() throws Exception { "Most likely it is due to mocking a private class that is not visible to Mockito"); } } + + @Test + public void spysHashCodeEqualsDelegatedToActualMethods() { + List real = new ArrayList<>(); + real.add("one"); + List spy = spy(real); + assertEquals(real.hashCode(), spy.hashCode()); + assertTrue(spy.equals(real)); + } }