Java tutorial
/* * @(#)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); } }