Advertisement
Guest User

Untitled

a guest
May 16th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.49 KB | None | 0 0
  1. package sample;
  2.  
  3. import org.junit.After;
  4. import org.junit.Before;
  5. import org.junit.Test;
  6.  
  7. import java.sql.Connection;
  8. import java.sql.DriverManager;
  9. import java.sql.PreparedStatement;
  10. import java.sql.ResultSet;
  11. import java.util.ArrayList;
  12.  
  13. import static junit.framework.TestCase.assertNotNull;
  14. import static junit.framework.TestCase.assertTrue;
  15. import static org.junit.Assert.assertEquals;
  16. import static org.junit.Assert.assertNotEquals;
  17.  
  18. /**
  19. */
  20. public class ToDoDatabaseTest {
  21. ToDoDatabase todoDatabase;
  22.  
  23. @Before
  24. public void setUp() throws Exception {
  25. todoDatabase = new ToDoDatabase();
  26. todoDatabase.init();
  27. }
  28.  
  29. @After
  30. public void tearDown() throws Exception {
  31.  
  32. }
  33.  
  34. @Test
  35. public void init() throws Exception {
  36. // test to make sure we can access the new database
  37. Connection conn = DriverManager.getConnection("jdbc:h2:./main");
  38. PreparedStatement todoQuery = conn.prepareStatement("SELECT * FROM todos");
  39. ResultSet results = todoQuery.executeQuery();
  40. assertNotNull(results);
  41. }
  42.  
  43. @Test
  44. public void testInsertToDo() throws Exception {
  45. Connection conn = DriverManager.getConnection("jdbc:h2:./main");
  46. String todoText = "UnitTest-ToDo";
  47.  
  48. // adding a call to insertUser, so we have a user to add todos for
  49. String username = "unittester@tiy.com";
  50. String fullName = "Unit Tester";
  51. int userID = todoDatabase.insertUser(conn, username, fullName);
  52.  
  53. todoDatabase.insertToDo(conn, todoText, userID);
  54.  
  55. // make sure we can retrieve the todo we just created
  56. PreparedStatement stmt = conn.prepareStatement("SELECT * FROM todos where text = ?");
  57. stmt.setString(1, todoText);
  58. ResultSet results = stmt.executeQuery();
  59. assertNotNull(results);
  60. // count the records in results to make sure we get what we expected
  61. int numResults = 0;
  62. while (results.next()) {
  63. numResults++;
  64. }
  65.  
  66. assertEquals(1, numResults);
  67.  
  68. todoDatabase.deleteToDo(conn, todoText);
  69. // make sure we remove the test user we added earlier
  70. todoDatabase.deleteUser(conn, username);
  71.  
  72. // make sure there are no more records for our test todo
  73. results = stmt.executeQuery();
  74. numResults = 0;
  75. while (results.next()) {
  76. numResults++;
  77. }
  78. assertEquals(0, numResults);
  79. }
  80.  
  81.  
  82. @Test
  83. public void testSelectAllToDos() throws Exception {
  84. Connection conn = DriverManager.getConnection("jdbc:h2:./main");
  85. String firstToDoText = "UnitTest-ToDo1";
  86. String secondToDoText = "UnitTest-ToDo2";
  87.  
  88. todoDatabase.insertToDo(conn, firstToDoText, 0);
  89. todoDatabase.insertToDo(conn, secondToDoText, 0);
  90.  
  91. ArrayList<ToDoItem> todos = todoDatabase.selectToDos(conn);
  92. System.out.println("Found " + todos.size() + " todos in the database");
  93.  
  94. assertTrue("There should be at least 2 todos in the database (there are " +
  95. todos.size() + ")", todos.size() > 1);
  96.  
  97. todoDatabase.deleteToDo(conn, firstToDoText);
  98. todoDatabase.deleteToDo(conn, secondToDoText);
  99. }
  100.  
  101. @Test
  102. public void testToggle() throws Exception {
  103. Connection conn = DriverManager.getConnection("jdbc:h2:./main");
  104. String todoText = "Toggle test";
  105.  
  106. todoDatabase.insertToDo(conn, todoText, 0);
  107.  
  108. PreparedStatement stmt = conn.prepareStatement("SELECT * FROM todos WHERE text = 'Toggle test'");
  109. ResultSet results = stmt.executeQuery();
  110. // results.next();
  111.  
  112. todoDatabase.toggleToDo(conn, results.getInt("id"));
  113. System.out.println("is_done:" + results.getString("is_done"));
  114. boolean expectedValue = !results.getBoolean("is_done");
  115. assertNotEquals(expectedValue, results.getBoolean("is_done"));
  116.  
  117.  
  118. }
  119.  
  120. @Test
  121. public void testInsertUser() throws Exception {
  122. Connection conn = DriverManager.getConnection("jdbc:h2:./main");
  123. String username = "unittester@tiy.com";
  124. String fullName = "Unit Tester";
  125.  
  126. int userID = todoDatabase.insertUser(conn, username, fullName);
  127. System.out.println("User ID = " + userID);
  128.  
  129. // make sure we can retrieve the user we just created
  130. PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users where username = ?");
  131. stmt.setString(1, username);
  132. ResultSet results = stmt.executeQuery();
  133. assertNotNull(results);
  134. results.next();
  135.  
  136. int retrievedID = results.getInt("id");
  137. assertEquals(userID, retrievedID);
  138.  
  139. todoDatabase.deleteUser(conn, username);
  140.  
  141. // make sure there are no more records for our test user
  142. results = stmt.executeQuery();
  143. int numResults = 0;
  144. while (results.next()) {
  145. numResults++;
  146. }
  147. assertEquals(0, numResults);
  148. }
  149.  
  150. @Test
  151. public void testInsertToDoForUser() throws Exception {
  152. Connection conn = DriverManager.getConnection("jdbc:h2:./main");
  153. String todoText = "UnitTest-ToDo";
  154. String todoText2 = "UnitTest-ToDo2";
  155.  
  156. // adding a call to insertUser, so we have a user to add todos for
  157. String username = "unittester@tiy.com";
  158. String fullName = "Unit Tester";
  159. int userID = todoDatabase.insertUser(conn, username, fullName);
  160.  
  161. String username2 = "unitester2@tiy.com";
  162. String fullName2 = "Unit Tester 2";
  163. int userID2 = todoDatabase.insertUser(conn, username2, fullName2);
  164.  
  165. todoDatabase.insertToDo(conn, todoText, userID);
  166. todoDatabase.insertToDo(conn, todoText2, userID2);
  167.  
  168. // make sure each user only has one todo item
  169. ArrayList<ToDoItem> todosUser1 = todoDatabase.selectToDosForUser(conn, userID);
  170. ArrayList<ToDoItem> todosUser2 = todoDatabase.selectToDosForUser(conn, userID2);
  171.  
  172. assertEquals(1, todosUser1.size());
  173. assertEquals(1, todosUser2.size());
  174.  
  175. // make sure each todo item matches
  176. ToDoItem todoUser1 = todosUser1.get(0);
  177. assertEquals(todoText, todoUser1.text);
  178. ToDoItem todoUser2 = todosUser2.get(0);
  179. assertEquals(todoText2, todoUser2.text);
  180.  
  181. todoDatabase.deleteToDo(conn, todoText);
  182. todoDatabase.deleteToDo(conn, todoText2);
  183. // make sure we remove the test user we added earlier
  184. todoDatabase.deleteUser(conn, username);
  185. todoDatabase.deleteUser(conn, username2);
  186.  
  187. }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement