package com.gigsterous.auth.service; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.verify; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.security.oauth2.common.OAuth2AccessToken; import org.springframework.security.oauth2.common.OAuth2RefreshToken; import org.springframework.security.oauth2.provider.token.store.JdbcTokenStore; public class TokenServiceImplTest { @Mock private JdbcTokenStore tokenStore; @Mock private OAuth2AccessToken accessToken; @Mock private OAuth2RefreshToken refreshToken; private TokenService tokenService; @Before public void setUp() { MockitoAnnotations.initMocks(this); tokenService = new TokenServiceImpl(tokenStore); } @Test public void testGivenUsernameWhenRevokingTokensThenRevokeAllTokens() { // mock access token given(accessToken.getRefreshToken()).willReturn(refreshToken); List<OAuth2AccessToken> tokens = new ArrayList<>(); tokens.add(accessToken); given(tokenStore.findTokensByUserName(eq("[email protected]"))).willReturn(tokens); tokenService.revokeTokens("[email protected]"); verify(tokenStore).removeAccessToken(accessToken); verify(tokenStore).removeRefreshToken(refreshToken); } }