Java 类org.mockito.internal.creation.settings.CreationSettings 实例源码

项目:mockito-cglib    文件:AcrossJVMSerializationFeature.java   
/**
 * Resolve the Mockito proxy class if it is marked as such.
 * <p/>
 * <p>Uses the fields {@link #typeToMock} and {@link #extraInterfaces} to
 * create the Mockito proxy class as the <code>ObjectStreamClass</code>
 * doesn't carry useful information for this purpose.</p>
 *
 * @param desc Description of the class in the stream, not used.
 * @return The class that will be used to deserialize the instance mock.
 * @throws IOException
 * @throws ClassNotFoundException
 */
@Override
protected Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
    if (notMarkedAsAMockitoMock(readObject())) {
        return super.resolveClass(desc);
    }

    // TODO check the class is mockable in the deserialization side
    // ClassImposterizer.INSTANCE.canImposterise(typeToMock);

    // create the Mockito mock class before it can even be deserialized
    //TODO SF unify creation of imposterizer, constructor code duplicated
    ClassImposterizer imposterizer = new ClassImposterizer(new InstantiatorProvider().getInstantiator(new CreationSettings()));
    imposterizer.setConstructorsAccessible(typeToMock, true);
    Class<?> proxyClass = imposterizer.createProxyClass(
            typeToMock,
            extraInterfaces.toArray(new Class[extraInterfaces.size()])
    );

    hackClassNameToMatchNewlyCreatedClass(desc, proxyClass);
    return proxyClass;
}
项目:j2objc    文件:MockSettingsImpl.java   
private static <T> CreationSettings<T> validatedSettings(Class<T> typeToMock, CreationSettings<T> source) {
        MockCreationValidator validator = new MockCreationValidator();

        validator.validateType(typeToMock);
        validator.validateExtraInterfaces(typeToMock, source.getExtraInterfaces());
        validator.validateMockedType(typeToMock, source.getSpiedInstance());

        //TODO SF - add this validation and also add missing coverage
//        validator.validateDelegatedInstance(classToMock, settings.getDelegatedInstance());

        CreationSettings<T> settings = new CreationSettings<T>(source);
        settings.setMockName(new MockNameImpl(source.getName(), typeToMock));
        settings.setTypeToMock(typeToMock);
        settings.setExtraInterfaces(prepareExtraInterfaces(source));
        return settings;
    }
项目:astor    文件:MockSettingsImpl.java   
private static <T> CreationSettings<T> validatedSettings(Class<T> typeToMock, CreationSettings<T> source) {
        MockCreationValidator validator = new MockCreationValidator();

        validator.validateType(typeToMock);
        validator.validateExtraInterfaces(typeToMock, source.getExtraInterfaces());
        validator.validateMockedType(typeToMock, source.getSpiedInstance());

        //TODO SF - add this validation and also add missing coverage
//        validator.validateDelegatedInstance(classToMock, settings.getDelegatedInstance());

        validator.validateSerializable(typeToMock, source.isSerializable());

        CreationSettings<T> settings = new CreationSettings<T>(source);
        settings.setMockName(new MockNameImpl(source.getName(), typeToMock));
        settings.setTypeToMock(typeToMock);
        settings.setExtraInterfaces(prepareExtraInterfaces(source));
        return settings;
    }
项目:j2objc    文件:MockSettingsImpl.java   
private static Set<Class> prepareExtraInterfaces(CreationSettings settings) {
    Set<Class> interfaces = new HashSet<Class>(settings.getExtraInterfaces());
    if(settings.isSerializable()) {
        interfaces.add(Serializable.class);
    }
    if (settings.getSpiedInstance() != null) {
        interfaces.add(MockitoSpy.class);
    }
    return interfaces;
}
项目:astor    文件:MockSettingsImpl.java   
private static Set<Class> prepareExtraInterfaces(CreationSettings settings) {
    Set<Class> interfaces = new HashSet<Class>(settings.getExtraInterfaces());
    if(settings.isSerializable()) {
        interfaces.add(Serializable.class);
    }
    return interfaces;
}
项目:astor    文件:MockUtil.java   
public void maybeRedefineMockName(Object mock, String newName) {
    MockName mockName = getMockName(mock);
    //TODO SF hacky...
    if (mockName.isDefault() && getMockHandler(mock).getMockSettings() instanceof CreationSettings) {
        ((CreationSettings) getMockHandler(mock).getMockSettings()).setMockName(new MockNameImpl(newName));
    }
}
项目:astor    文件:ReturnsDeepStubs.java   
protected GenericMetadataSupport actualParameterizedType(Object mock) {
    CreationSettings mockSettings = (CreationSettings) new MockUtil().getMockHandler(mock).getMockSettings();
    return GenericMetadataSupport.inferFrom(mockSettings.getTypeToMock());
}