private static BindType determineBindType(final Key<?> key,
                                              final Binding<?> binding,
                                              final Class<?> bindingClass) {
        LOGGER.trace("Anno: {}", key.getAnnotation());
        final Annotation annotation = key.getAnnotation();

        if (annotation != null
            && annotation.toString().contains("@com.google.inject.internal.Element")
            && annotation.toString().contains("MAPBINDER")) {
            return BindType.MAP_BINDER;
        } else if (annotation != null
                   && annotation.toString().contains("@com.google.inject.internal.Element")
                   && annotation.toString().contains("MULTIBINDER")) {
            return BindType.MULTI_BINDER;
        } else {
            if (InstanceBinding.class.isAssignableFrom(bindingClass)) {
                return BindType.INSTANCE;
            } else if (ProviderInstanceBinding.class.isAssignableFrom(bindingClass)
                       || ProviderKeyBinding.class.isAssignableFrom(bindingClass)) {
                return BindType.PROVIDER;
            } else {
                return BindType.IMPL;
            }
        }
    }
Create a {@link MockBinderBuilder} to bind multiple interfaces to a {@link Mockito} mock.
stroom-test-common/src/main/java/stroom/test/common/util/guice/GuiceTestUtil.java