### Question:
VerificationCodeManager implements SettingsDependent, HasCleanup { public boolean isVerificationRequired(Player player) { final String name = player.getName(); return canSendMail && !isPlayerVerified(name) && permissionsManager.hasPermission(player, PlayerPermission.VERIFICATION_CODE) && hasEmail(name); } @Inject  VerificationCodeManager(Settings settings, DataSource dataSource, EmailService emailService,
                            PermissionsManager permissionsManager); boolean canSendMail(); boolean isVerificationRequired(Player player); boolean isCodeRequired(String name); boolean hasCode(String name); boolean hasEmail(String name); void codeExistOrGenerateNew(String name); boolean checkCode(String name, String code); void verify(String name); void unverify(String name); @Override void reload(Settings settings); @Override void performCleanup();  }### Answer:
@Test public void shouldNotRequireVerificationIfEmailSettingsAreIncomplete() { given(emailService.hasAllInformation()).willReturn(false); VerificationCodeManager codeManager = createCodeManager(); Player player = mock(Player.class); boolean result = codeManager.isVerificationRequired(player); assertThat(result, equalTo(false)); verifyZeroInteractions(permissionsManager, dataSource); }