com.miserablemind.butter.domain.model.user.user_persistent_logins.impl.PersistentTokenRepositoryImplTest.java Source code

Java tutorial

Introduction

Here is the source code for com.miserablemind.butter.domain.model.user.user_persistent_logins.impl.PersistentTokenRepositoryImplTest.java

Source

package com.miserablemind.butter.domain.model.user.user_persistent_logins.impl;

import com.miserablemind.butter.bootstrap.RootContext;
import com.miserablemind.butter.domain.model.user.user_persistent_logins.UserPersistentTokenDao;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.security.web.authentication.rememberme.PersistentRememberMeToken;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.Date;

import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

/**
 * Miserable Mind
 * http://www.butter.miserablemind.com
 * The MIT License (MIT)
 */
@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(classes = { RootContext.class })
public class PersistentTokenRepositoryImplTest {

    @InjectMocks
    private PersistentTokenRepositoryImpl persistentTokenRepositoryImpl;

    @Mock
    private UserPersistentTokenDao userPersistentTokenDao;

    private PersistentRememberMeToken token;

    String userName;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        this.userName = "someUsername";
        this.token = new PersistentRememberMeToken(this.userName, "series", "tokenValue242214", new Date());
    }

    @After
    public void tearDown() {
        this.persistentTokenRepositoryImpl = null;
        this.userPersistentTokenDao = null;
    }

    /**
     * Tests {@link com.miserablemind.butter.domain.model.user.user_persistent_logins.impl.PersistentTokenRepositoryImpl#createNewToken(org.springframework.security.web.authentication.rememberme.PersistentRememberMeToken)}
     */
    @Test
    public void testCreateNewToken() {
        this.persistentTokenRepositoryImpl.createNewToken(this.token);
        verify(this.userPersistentTokenDao).insertRememberMeToken(this.token);
    }

    /**
     * Tests {@link com.miserablemind.butter.domain.model.user.user_persistent_logins.impl.PersistentTokenRepositoryImpl#getTokenForSeries(String)}
     */
    @Test
    public void testGetTokenForSeries() {
        when(this.userPersistentTokenDao.getRememberMeTokenForSeries(anyString())).thenReturn(this.token);
        PersistentRememberMeToken returnedToken = this.persistentTokenRepositoryImpl
                .getTokenForSeries(this.token.getSeries());
        verify(this.userPersistentTokenDao).getRememberMeTokenForSeries(this.token.getSeries());
        assertTrue("Returned the same instance as Dao supplied", returnedToken == this.token);
    }

    /**
     * Tests {@link com.miserablemind.butter.domain.model.user.user_persistent_logins.impl.PersistentTokenRepositoryImpl#removeUserTokens(String)}
     */
    @Test
    public void testRemoveUserTokens() {
        this.persistentTokenRepositoryImpl.removeUserTokens(this.userName);
        verify(this.userPersistentTokenDao).deleteRememberMeToken(this.userName);
    }

    /**
     * Tests {@link com.miserablemind.butter.domain.model.user.user_persistent_logins.impl.PersistentTokenRepositoryImpl#updateToken(String, String, java.util.Date)}
     */
    @Test
    public void testUpdateToken() {
        this.persistentTokenRepositoryImpl.updateToken(this.token.getSeries(), this.token.getTokenValue(),
                this.token.getDate());
        verify(this.userPersistentTokenDao).updateRememberMeToken(this.token.getSeries(),
                this.token.getTokenValue(), this.token.getDate());
    }

}