package UnitTest; import static org.junit.Assert.*; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import org.junit.Test; import repository.DbManager; import repository.UserDAO; import domain.Project; import domain.User; public class UserDAOTest { protected void setUp() { } @Test public void testAddUser() throws SQLException{ ArrayList<String> before = new ArrayList<String>(); ArrayList<String> after = new ArrayList<String>(); before.add("newtestuser"); before.add("1234"); before.add("newuser@email.com"); before.add("What's your pet's name"); before.add("mypetname"); before.add("U"); String username = "newtestuser"; User user = new User("newtestuser","1234","newuser@email.com","What's your pet's name","mypetname","U"); UserDAO.addUser(user); Connection conn = null; ResultSet rs = null; //ResultSet rsDelete = null; PreparedStatement pstmt = null; PreparedStatement pstmtDelete = null; try { conn = DbManager.getConnection(); pstmt = conn.prepareStatement("SELECT * FROM user where userName = ?;"); pstmt.setString(1, username); rs = pstmt.executeQuery(); if(rs.next()){ after.add(rs.getString("username")); after.add(rs.getString("password")); after.add(rs.getString("email")); after.add(rs.getString("securityQ")); after.add(rs.getString("securityA")); after.add(rs.getString("userType")); } pstmtDelete = conn.prepareStatement("DELETE FROM user where userId = ?;"); pstmtDelete.setString(1, rs.getString("userId")); pstmtDelete.executeUpdate(); } catch (SQLException e) { } finally { rs.close(); //rsDelete.close(); pstmt.close(); pstmtDelete.close(); conn.close(); } assertArrayEquals(before.toArray(),after.toArray()); } @Test public void testGetProjects() throws SQLException { /* * For successfully running this test, make sure you have a user whose uerId=1 and this user has 2 projects */ ArrayList<Project> projects; projects = UserDAO.getProjects(1); assertTrue(projects.size() == 2); } /* @Test public void testGetUserStringString() { fail("Not yet implemented"); } @Test public void testGetUserString() { fail("Not yet implemented"); } @Test public void testGetUserInt() { fail("Not yet implemented"); } @Test public void testRemoveUser() { fail("Not yet implemented"); } @Test public void testUpdateUser() { fail("Not yet implemented"); } */ }