public void generateEmailTokenAfterExpired() {
User user = generateTestUser();
VerificationToken token = mock(VerificationToken.class);
when(token.hasExpired()).thenReturn(true);
when(token.getTokenType()).thenReturn(VerificationToken.VerificationTokenType.emailVerification);
user.addVerificationToken(token);
when(userRepository.findByEmailAddress(user.getEmailAddress())).thenReturn(user);
when(userRepository.save(user)).thenReturn(user);
VerificationToken generatedToken = verificationTokenService.generateEmailVerificationToken(user.getEmailAddress());
assertThat(user.getVerificationTokens().size(), is(2));
assertThat(tokens.size(), is(1)); //gateway invoked once, as first token was manually added