org.mockito.internal.util.MockCreationValidator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of securemock Show documentation
Show all versions of securemock Show documentation
Libraries for Elasticsearch
The newest version!
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.internal.util;
import static org.mockito.internal.exceptions.Reporter.cannotMockClass;
import static org.mockito.internal.exceptions.Reporter.extraInterfacesCannotContainMockedType;
import static org.mockito.internal.exceptions.Reporter.mockedTypeIsInconsistentWithDelegatedInstanceType;
import static org.mockito.internal.exceptions.Reporter.mockedTypeIsInconsistentWithSpiedInstanceType;
import static org.mockito.internal.exceptions.Reporter.usingConstructorWithFancySerializable;
import java.util.Collection;
import org.mockito.mock.SerializableMode;
import org.mockito.plugins.MockMaker.TypeMockability;
@SuppressWarnings("unchecked")
public class MockCreationValidator {
public void validateType(Class> classToMock) {
TypeMockability typeMockability = MockUtil.typeMockabilityOf(classToMock);
if (!typeMockability.mockable()) {
throw cannotMockClass(classToMock, typeMockability.nonMockableReason());
}
}
public void validateExtraInterfaces(Class> classToMock, Collection> extraInterfaces) {
if (extraInterfaces == null) {
return;
}
for (Class> i : extraInterfaces) {
if (classToMock == i) {
throw extraInterfacesCannotContainMockedType(classToMock);
}
}
}
public void validateMockedType(Class> classToMock, Object spiedInstance) {
if (classToMock == null || spiedInstance == null) {
return;
}
if (!classToMock.equals(spiedInstance.getClass())) {
throw mockedTypeIsInconsistentWithSpiedInstanceType(classToMock, spiedInstance);
}
}
public void validateDelegatedInstance(Class> classToMock, Object delegatedInstance) {
if (classToMock == null || delegatedInstance == null) {
return;
}
if (delegatedInstance.getClass().isAssignableFrom(classToMock)) {
throw mockedTypeIsInconsistentWithDelegatedInstanceType(classToMock, delegatedInstance);
}
}
public void validateConstructorUse(boolean usingConstructor, SerializableMode mode) {
if (usingConstructor && mode == SerializableMode.ACROSS_CLASSLOADERS) {
throw usingConstructorWithFancySerializable(mode);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy