diff --git a/projects/Mockito/10/org/mockito/internal/stubbing/defaultanswers/ReturnsDeepStubs.java b/projects/Mockito/10/org/mockito/internal/stubbing/defaultanswers/ReturnsDeepStubs.java index e2ded55..3bb7636 100644 --- a/projects/Mockito/10/org/mockito/internal/stubbing/defaultanswers/ReturnsDeepStubs.java +++ b/projects/Mockito/10/org/mockito/internal/stubbing/defaultanswers/ReturnsDeepStubs.java @@ -14,6 +14,7 @@ import org.mockito.internal.util.MockUtil; import org.mockito.internal.util.reflection.GenericMetadataSupport; import org.mockito.invocation.InvocationOnMock; +import org.mockito.mock.MockCreationSettings; import org.mockito.stubbing.Answer; import java.io.IOException; @@ -68,7 +69,7 @@ private Object deepStub(InvocationOnMock invocation, GenericMetadataSupport retu // record deep stub answer return recordDeepStubAnswer( - newDeepStubMock(returnTypeGenericMetadata), + newDeepStubMock(returnTypeGenericMetadata, invocation.getMock()), container ); } @@ -84,22 +85,26 @@ private Object deepStub(InvocationOnMock invocation, GenericMetadataSupport retu * @param parentMock The parent of the current deep stub mock. * @return The mock */ - private Object newDeepStubMock(GenericMetadataSupport returnTypeGenericMetadata) { + private Object newDeepStubMock(GenericMetadataSupport returnTypeGenericMetadata, Object parentMock) { + MockCreationSettings parentMockSettings = new MockUtil().getMockSettings(parentMock); return mockitoCore().mock( returnTypeGenericMetadata.rawType(), - withSettingsUsing(returnTypeGenericMetadata) + withSettingsUsing(returnTypeGenericMetadata, parentMockSettings) ); } - private MockSettings withSettingsUsing(GenericMetadataSupport returnTypeGenericMetadata) { + private MockSettings withSettingsUsing(GenericMetadataSupport returnTypeGenericMetadata, MockCreationSettings parentMockSettings) { MockSettings mockSettings = returnTypeGenericMetadata.hasRawExtraInterfaces() ? withSettings().extraInterfaces(returnTypeGenericMetadata.rawExtraInterfaces()) : withSettings(); - return mockSettings.serializable() + return propagateSerializationSettings(mockSettings, parentMockSettings) .defaultAnswer(returnsDeepStubsAnswerUsing(returnTypeGenericMetadata)); } + private MockSettings propagateSerializationSettings(MockSettings mockSettings, MockCreationSettings parentMockSettings) { + return mockSettings.serializable(parentMockSettings.getSerializableMode()); + } private ReturnsDeepStubs returnsDeepStubsAnswerUsing(final GenericMetadataSupport returnTypeGenericMetadata) { return new ReturnsDeepStubsSerializationFallback(returnTypeGenericMetadata);