private static void dumpModule(final ModuleInfo moduleInfo,
                                   final StringBuilder stringBuilder,
                                   final String pad) {
        final String childPad = pad + "    ";
        stringBuilder.append(pad)
                .append(ConsoleColour.cyan(moduleInfo.toString()))
                .append("\n");

        final Comparator<BindInfo> byKeyComparator = Comparator.comparing(bindInfo ->
                bindInfo.getKey().getTypeLiteral().toString());
        final Comparator<BindInfo> byInfoComparator = Comparator.comparing(BindInfo::getInfo);

        // dump the binds on this module first
        moduleInfo.binds
                .values()
                .stream()
                .sorted(byKeyComparator.thenComparing(byInfoComparator))
                .forEach(bindInfo -> {
                    stringBuilder.append(childPad);
                    dumpBindInfo(bindInfo, stringBuilder);
                    stringBuilder.append("\n");
                });

        // dump the child modules and their binds
        moduleInfo.childModules
                .stream()
                .sorted(Comparator.comparing(moduleInfo2 -> moduleInfo2.moduleClass))
                .forEach(moduleInfo3 -> {
                    dumpModule(moduleInfo3, stringBuilder, childPad);
                });
    }
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