com.chevres.rss.restapi.dao.impl.UserDAOImplTest.java Source code

Java tutorial

Introduction

Here is the source code for com.chevres.rss.restapi.dao.impl.UserDAOImplTest.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.chevres.rss.restapi.dao.impl;

import com.chevres.rss.restapi.dao.UserDAO;
import com.chevres.rss.restapi.model.User;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.runner.RunWith;
import com.github.springtestdbunit.DbUnitTestExecutionListener;
import com.github.springtestdbunit.annotation.DatabaseSetup;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestExecutionListeners;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;

/**
 *
 * @author anthony
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:spring.xml" })
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class, DbUnitTestExecutionListener.class })
@DatabaseSetup("classpath:datasets/dataset.xml")
public class UserDAOImplTest {

    @Autowired
    UserDAO userDao;

    /**
     * Test of findById method, of class UserDAOImpl.
     */
    @Test
    public void testFindById() {
        User user = userDao.findById(0);
        assertNull(user);
        user = userDao.findById(1);
        assertNotNull(user);
    }

    /**
     * Test of findByUsername method, of class UserDAOImpl.
     */
    @Test
    public void testFindByUsername() {
        User user = userDao.findByUsername("notexistuser");
        assertNull(user);
        user = userDao.findByUsername("user1");
        assertNotNull(user);
    }

    /**
     * Test of updateUser method, of class UserDAOImpl.
     */
    @Test
    public void testUpdateUser() {
        User oldUser = userDao.findByUsername("user1");
        User newUser = new User();
        newUser.setUsername("Anthony");
        newUser.setPassword("updatepwd");
        newUser.setType("admin");
        userDao.updateUser(oldUser, newUser, true);

        PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        boolean doesMatch = passwordEncoder.matches("updatepwd", oldUser.getPassword());

        assertEquals(oldUser.getUsername(), "Anthony");
        assertTrue(doesMatch);
        assertEquals(oldUser.getType(), "admin");
    }

    /**
     * Test of doesExist method, of class UserDAOImpl.
     */
    @Test
    public void testDoesExist() {
        assertTrue(userDao.doesExist("user1"));
        assertFalse(userDao.doesExist("notregistereduser"));
    }

    /**
     * Test of findByUsernameAndPassword method, of class UserDAOImpl.
     */
    @Test
    public void testFindByUsernameAndPassword() {
        assertNotNull(userDao.findByUsernameAndPassword("user1", "password"));
        assertNull(userDao.findByUsernameAndPassword("user1", "passwor"));
        assertNull(userDao.findByUsernameAndPassword("user", "password"));
    }

    /**
     * Test of isAdmin method, of class UserDAOImpl.
     */
    @Test
    public void testIsAdmin() {
        assertFalse(userDao.isAdmin(1));
        assertTrue(userDao.isAdmin(4));
    }

    /**
     * Test of findEveryone method, of class UserDAOImpl.
     */
    @Test
    public void testFindEveryone() {
        List<User> userList = userDao.findEveryone();
        assertEquals(userList.size(), 4);
        assertNotEquals(userList.size(), 2);
    }

    @Test
    public void testCreate() {
        User user = new User();
        user.setUsername("username");
        user.setPassword("pwd");
        user.setType("user");

        userDao.create(user);
        User createdUser = userDao.findByUsername("username");
        assertNotNull(createdUser);
        assertEquals(createdUser.getId(), 5);
        assertEquals(createdUser.getUsername(), "username");
        assertEquals(createdUser.getPassword(), "pwd");
        assertEquals(createdUser.getType(), "user");
    }

    @Test
    public void testDelete() {
        User user = userDao.findByUsername("user1");
        assertNotNull(user);

        userDao.delete(user);

        user = userDao.findByUsername("user1");
        assertNull(user);
    }

}