Advertisement
Guest User

Untitled

a guest
Apr 11th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.90 KB | None | 0 0
  1. import java.sql.SQLException;
  2. import com.mydb.UserTest;
  3. public interface UserDao {
  4.  
  5. /**
  6. * Insert an user in the database.
  7. *
  8. * @param user user to be inserted
  9. * @return if id the inserted user
  10. */
  11. long addUser( UserTest user ) throws SQLException;
  12. UserTest getUserById( long id ) throws SQLException;
  13. }
  14.  
  15. import static org.junit.Assert.*;
  16.  
  17. import java.io.InputStream;
  18. import java.io.InputStreamReader;
  19. import java.io.Reader;
  20. import java.sql.Connection;
  21. import java.sql.DriverManager;
  22.  
  23. import org.dbunit.dataset.IDataSet;
  24. import org.dbunit.dataset.ReplacementDataSet;
  25. import org.dbunit.dataset.xml.FlatXmlDataSet;
  26. import org.dbunit.ext.hsqldb.HsqldbConnection;
  27. import org.junit.AfterClass;
  28. import org.junit.BeforeClass;
  29.  
  30. public abstract class AbstractDbUnitTestCase {
  31.  
  32. protected static UserDaoJdbcImpl dao = new UserDaoJdbcImpl();
  33. protected static Connection connection;
  34. protected static HsqldbConnection dbunitConnection;
  35.  
  36. @BeforeClass
  37. public static void setupDatabase() throws Exception {
  38. Class.forName("com.mysql.jdbc.Driver");
  39. connection = DriverManager.getConnection("jdbc:mysql://mydb/mydb","user","password");
  40. if (connection != null)
  41. System.out.println("Connected to the database");
  42. dbunitConnection = new HsqldbConnection(connection,null);
  43. dao.setConnection(connection);
  44. }
  45.  
  46. @AfterClass
  47. public static void closeDatabase() throws Exception {
  48. if ( dbunitConnection != null ) {
  49. dbunitConnection.close();
  50. dbunitConnection = null;
  51. }
  52. }
  53.  
  54. public static IDataSet getDataSet(String name) throws Exception {
  55. InputStream inputStream = AbstractDbUnitTestCase.class.getResourceAsStream(name);
  56. assertNotNull("file " + name + " not found in classpath", inputStream );
  57. Reader reader = new InputStreamReader(inputStream);
  58. FlatXmlDataSet dataset = new FlatXmlDataSet(reader);
  59. return dataset;
  60. }
  61.  
  62. public static IDataSet getReplacedDataSet(String name, long id) throws Exception {
  63. IDataSet originalDataSet = getDataSet(name);
  64. return getReplacedDataSet(originalDataSet, id);
  65. }
  66.  
  67. public static IDataSet getReplacedDataSet(IDataSet originalDataSet, long id) throws Exception {
  68. ReplacementDataSet replacementDataSet = new ReplacementDataSet(originalDataSet);
  69. replacementDataSet.addReplacementObject("[ID]", id);
  70. replacementDataSet.addReplacementObject("[NULL]", null);
  71. return replacementDataSet;
  72. }
  73.  
  74. }
  75.  
  76. import static org.junit.Assert.*;
  77. import static com.test.EntitiesHelper.*;
  78.  
  79.  
  80. import org.dbunit.Assertion;
  81. import org.dbunit.dataset.IDataSet;
  82. import org.dbunit.operation.DatabaseOperation;
  83. import org.junit.Ignore;
  84. import org.junit.Test;
  85.  
  86. import com.mydb.UserTest;
  87.  
  88. public class UserDaoJdbcImplTest extends AbstractDbUnitTestCase {
  89.  
  90. @Test
  91. public void testGetUserById() throws Exception {
  92. IDataSet setupDataSet = getDataSet("/user.xml");
  93. DatabaseOperation.CLEAN_INSERT.execute(dbunitConnection, setupDataSet);
  94. UserProvaTest user = dao.getUserById(1);
  95. assertNotNull( user);
  96. assertEquals( "Jeffrey", user.getFirstName() );
  97. assertEquals( "Lebowsky", user.getLastName() );
  98. assertEquals( "ElDuderino", user.getUsername() );
  99. }
  100.  
  101. @Test @Ignore("fails if run together with others")
  102. public void testAddUser() throws Exception {
  103. UserProvaTest user = newUser();
  104. long id = dao.addUser(user);
  105. assertTrue(id>0);
  106. IDataSet expectedDataSet = getDataSet("/user.xml");
  107. IDataSet actualDataSet = dbunitConnection.createDataSet();
  108. Assertion.assertEquals( expectedDataSet, actualDataSet );
  109. }
  110.  
  111. @Test
  112. public void testAddUseIgnoringId() throws Exception {
  113. IDataSet setupDataSet = getDataSet("/user.xml");
  114. DatabaseOperation.DELETE_ALL.execute(dbunitConnection, setupDataSet);
  115. UserProvaTest user = newUser();
  116. long id = dao.addUser(user);
  117. assertTrue(id>0);
  118. IDataSet expectedDataSet = getDataSet("/user.xml");
  119. IDataSet actualDataSet = dbunitConnection.createDataSet();
  120. Assertion.assertEqualsIgnoreCols( expectedDataSet, actualDataSet, "users", new String[] { "id" } );
  121. }
  122.  
  123. @Test
  124. public void testGetUserByIdReplacingIds() throws Exception {
  125. long id = 42;
  126. IDataSet setupDataset = getReplacedDataSet("/user-token.xml", id );
  127. DatabaseOperation.INSERT.execute(dbunitConnection, setupDataset);
  128. UserProvaTest user = dao.getUserById(id);
  129. assertUser(user);
  130. }
  131.  
  132. @Test
  133. public void testAddUserReplacingIds() throws Exception {
  134. IDataSet setupDataSet = getDataSet("/user-token.xml");
  135. DatabaseOperation.DELETE_ALL.execute(dbunitConnection, setupDataSet);
  136. UserProvaTest user = newUser();
  137. long id = dao.addUser(user);
  138. assertTrue(id>0);
  139. IDataSet expectedDataSet = getReplacedDataSet(setupDataSet, id );
  140. IDataSet actualDataSet = dbunitConnection.createDataSet();
  141. Assertion.assertEquals( expectedDataSet, actualDataSet );
  142. }
  143.  
  144. }
  145.  
  146. <?xml version='1.0' encoding='UTF-8'?>
  147. <dataset>
  148. <UserTest id="1" username="ElDuderino" first_name="Jeffrey" last_name="Lebowsky" />
  149. </dataset>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement