### Question:
CommandManager implements Reloadable { public void runCommandsOnJoin(Player player) { executeCommands(player, onJoinCommands.getAdaptedItems(player)); } @Inject  CommandManager(@DataFolder File dataFolder, BukkitService bukkitService, GeoIpService geoIpService,
                   CommandMigrationService commandMigrationService); void runCommandsOnJoin(Player player); void runCommandsOnRegister(Player player); void runCommandsOnLogin(Player player, List<String> otherAccounts); void runCommandsOnSessionLogin(Player player); void runCommandsOnFirstLogin(Player player, List<String> otherAccounts); void runCommandsOnUnregister(Player player); void runCommandsOnLogout(Player player); @Override void reload();  }### Answer:
@Test public void shouldExecuteCommandsOnJoin() { copyJarFileAsCommandsYml(TEST_FILES_FOLDER + "commands.complete.yml"); initManager(); manager.runCommandsOnJoin(player); verify(bukkitService, only()).dispatchConsoleCommand("broadcast bob has joined"); verifyZeroInteractions(geoIpService); }
@Test public void shouldExecuteCommandsOnJoinWithIncompleteConfig() { copyJarFileAsCommandsYml(TEST_FILES_FOLDER + "commands.incomplete.yml"); initManager(); manager.runCommandsOnJoin(player); verify(bukkitService, only()).dispatchConsoleCommand("broadcast Bobby has joined"); verifyZeroInteractions(geoIpService); }