springbook.user.dao.UserDaoOldTest.java Source code

Java tutorial

Introduction

Here is the source code for springbook.user.dao.UserDaoOldTest.java

Source

/*
 * @(#)UserDaoTest.java $version 2014. 1. 10.
 *
 * Copyright 2014 LINE Plus Corp. All rights Reserved. 
 * LINE Plus PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package springbook.user.dao;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

import java.sql.SQLException;
import java.util.List;

import javax.sql.DataSource;

import org.apache.commons.lang.StringUtils;
import org.junit.Before;
import org.junit.Test;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.datasource.SingleConnectionDataSource;
import org.springframework.test.annotation.DirtiesContext;

import springbook.user.domain.User;

/**
 * @author taeyongpark
 */
// Spring? ?  UserDAO     UserDao ? test ? ?? ?? ,
//    Focus test-applicationContext.xml ?  ?  ?? ?.
@DirtiesContext
public class UserDaoOldTest {
    private UserDaoOld dao;

    private User user1;
    private User user2;
    private User user3;

    final String url = "jdbc:mysql://localhost:13306/springbook?characterEncoding=utf8"; // mac local mysql db
    final String username = "root";
    final String password = "qkrxodyd";

    @Before
    //  ?? ?  .
    // gtest ?  ?? ?   ?.
    public void setUp() {
        dao = new UserDaoOld();

        DataSource dataSource = new SingleConnectionDataSource(url, username, password, true);

        dao.setDataSource(dataSource);

        user1 = new User("akinodaia", "", "rlathwjd");
        user2 = new User("user2", "?", "qkrxotjr");
        user3 = new User("user3", "", "qkrghdbs");
    }

    @Test(expected = EmptyResultDataAccessException.class)
    public void getUserFailure() throws SQLException {
        dao.deleteAll();
        assertThat(dao.getCount(), is(0));

        dao.get("unknown_id");
    }

    @Test
    public void count() throws SQLException {
        dao.deleteAll();
        assertThat(dao.getCount(), is(0));

        dao.add(user1);
        assertThat(dao.getCount(), is(1));

        dao.add(user2);
        assertThat(dao.getCount(), is(2));

        dao.add(user3);
        assertThat(dao.getCount(), is(3));
    }

    @Test
    public void addAndGet() throws SQLException {
        dao.deleteAll();
        assertThat(dao.getCount(), is(0));

        dao.add(user1);
        dao.add(user2);
        assertThat(dao.getCount(), is(2));

        User userGet1 = dao.get(user1.getId());
        assertThat(userGet1.getName(), is(user1.getName()));
        assertThat(userGet1.getPassword(), is(user1.getPassword()));

        User userGet2 = dao.get(user2.getId());
        assertThat(userGet2.getName(), is(user2.getName()));
        assertThat(userGet2.getPassword(), is(user2.getPassword()));
    }

    @Test
    public void getAll() {
        dao.deleteAll();

        List<User> users0 = dao.getAll();
        assertThat(users0.size(), is(0));

        dao.add(user1);
        List<User> users1 = dao.getAll();
        assertThat(users1.size(), is(1));
        checkSameUser(user1, users1.get(0));

        dao.add(user2);
        List<User> users2 = dao.getAll();
        assertThat(users2.size(), is(2));
        checkSameUser(user1, users2.get(0));
        checkSameUser(user2, users2.get(1));

        dao.add(user3);
        List<User> users3 = dao.getAll();
        assertThat(users3.size(), is(3));
        checkSameUser(user1, users3.get(0));
        checkSameUser(user2, users3.get(1));
        checkSameUser(user3, users3.get(2));
    }

    /**
     * @param user12
     * @param user
     */
    private void checkSameUser(User user1, User user2) {
        assertThat(user1.getId(), is(user2.getId()));
        assertThat(user1.getName(), is(user2.getName()));
        assertThat(user1.getPassword(), is(user2.getPassword()));
    }

    @Test(expected = DuplicateKeyException.class)
    public void CheckDuplicateKeyException() {
        dao.deleteAll();

        dao.add(user1);
        dao.add(user1);
    }

}