File tree Expand file tree Collapse file tree
mockito-core/src/main/java/org/mockito/internal/util
mockito-integration-tests/programmatic-tests/src/test/java/org/mockito Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -157,8 +157,10 @@ private static MockHandler<?> getMockHandlerOrNull(Object mock) {
157157 for (MockMaker mockMaker : mockMakers .values ()) {
158158 MockHandler <?> handler = mockMaker .getHandler (mock );
159159 if (handler != null ) {
160- assert getMockMaker (handler .getMockSettings ().getMockMaker ()) == mockMaker ;
161- return handler ;
160+ String mockMakerName = handler .getMockSettings ().getMockMaker ();
161+ if (getMockMaker (mockMakerName ) == mockMaker ) {
162+ return handler ;
163+ }
162164 }
163165 }
164166 return null ;
Original file line number Diff line number Diff line change @@ -157,6 +157,17 @@ class InvalidMockMaker extends SubclassByteBuddyMockMaker {
157157 .hasMessageContaining (InvalidMockMaker .class .getName ());
158158 }
159159
160+ @ Test
161+ public void test_interface_after_subclass_mock_maker () {
162+ NonFinalClass subClassMock = Mockito .mock (NonFinalClass .class , Mockito .withSettings ().mockMaker (MockMakers .SUBCLASS ));
163+ Mockito .when (subClassMock .someMethod ()).thenReturn ("1" );
164+ assertEquals ("1" , subClassMock .someMethod ());
165+
166+ SomeInterface interfaceMock = Mockito .mock (SomeInterface .class );
167+ Mockito .when (interfaceMock .someMethod ()).thenReturn ("2" );
168+ assertEquals ("2" , interfaceMock .someMethod ());
169+ }
170+
160171 private static final class FinalClass {
161172 String someMethod () {
162173 return "ORIGINAL" ;
@@ -192,6 +203,16 @@ Container subContainer() {
192203 }
193204 }
194205
206+ private static class NonFinalClass {
207+ String someMethod () {
208+ return "ORIGINAL" ;
209+ }
210+ }
211+
212+ private interface SomeInterface {
213+ String someMethod ();
214+ }
215+
195216 public static class CustomMockMaker extends SubclassByteBuddyMockMaker {
196217 @ Override
197218 public <T > T createMock (MockCreationSettings <T > settings , MockHandler handler ) {
You can’t perform that action at this time.
0 commit comments