Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.86 KB | None | 0 0
  1. package pl.tau.dbdemo;
  2.  
  3. import java.sql.DriverManager;
  4.  
  5. import org.dbunit.JdbcDatabaseTester;
  6. import org.dbunit.PropertiesBasedJdbcDatabaseTester;
  7. import org.dbunit.dataset.xml.FlatXmlDataSet;
  8. import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
  9. import org.dbunit.operation.DatabaseOperation;
  10. import org.junit.AfterClass;
  11. import org.junit.BeforeClass;
  12. import org.junit.runner.RunWith;
  13. import org.junit.runners.Suite;
  14.  
  15. import pl.tau.dbdemo.repository.PersonDbunitTest;
  16. import pl.tau.dbdemo.repository.PersonRepositoryJdbcImpl;
  17.  
  18.  
  19. @RunWith(Suite.class)
  20. @Suite.SuiteClasses({
  21.         PersonDbunitTest.class
  22. })
  23. public class PersonTests {
  24.     @BeforeClass
  25.     public static void before() throws Exception {
  26.           String url = "jdbc:hsqldb:hsql://localhost/workdb";
  27.  
  28.         new PersonRepositoryJdbcImpl(DriverManager.getConnection(url));
  29.         System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, "org.hsqldb.jdbcDriver" );
  30.         System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, "jdbc:hsqldb:hsql://localhost/workdb" );
  31.         System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_USERNAME, "sa" );
  32.         System.setProperty( PropertiesBasedJdbcDatabaseTester.DBUNIT_PASSWORD, "" );
  33.  
  34.         JdbcDatabaseTester databaseTester = new PropertiesBasedJdbcDatabaseTester();
  35.  
  36.         FlatXmlDataSet dataSet = new FlatXmlDataSetBuilder().build(
  37.             PersonTests.class.getClassLoader().
  38.                         getResource("ds-0.xml").openStream()
  39.         );
  40.        
  41.         databaseTester.setSetUpOperation(DatabaseOperation.CLEAN_INSERT);
  42.         databaseTester.setDataSet(dataSet);
  43.         databaseTester.onSetup();
  44.     }
  45.  
  46.     @AfterClass
  47.     public static void after() {
  48.     }
  49.  
  50. }
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80. package pl.tau.dbdemo.repository;
  81.  
  82. import static org.junit.Assert.*;
  83.  
  84. import java.net.URL;
  85. import java.sql.DriverManager;
  86. import java.sql.SQLException;
  87.  
  88. import org.dbunit.Assertion;
  89. import org.dbunit.DBTestCase;
  90. import org.dbunit.dataset.IDataSet;
  91. import org.dbunit.dataset.ITable;
  92. import org.dbunit.dataset.filter.DefaultColumnFilter;
  93. import org.dbunit.dataset.xml.FlatXmlDataSet;
  94. import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
  95. import org.dbunit.operation.DatabaseOperation;
  96. import org.junit.After;
  97. import org.junit.Before;
  98. import org.junit.Test;
  99. import org.junit.runner.RunWith;
  100. import org.junit.runners.JUnit4;
  101.  
  102. import pl.tau.dbdemo.domain.Person;
  103.  
  104. @RunWith(JUnit4.class)
  105. public class PersonDbunitTest extends DBTestCase {
  106.     public static String url = "jdbc:hsqldb:hsql://localhost/workdb";
  107.  
  108.     PersonRepository personManager;
  109.  
  110.     @After
  111.     public void tearDown() throws Exception {
  112.         super.tearDown();
  113.     }
  114.  
  115.     @Before
  116.     public void setUp() throws Exception {
  117.         super.setUp();
  118.         personManager = new PersonRepositoryJdbcImpl(DriverManager.getConnection(url));
  119.     }
  120.  
  121.     @Test
  122.     public void doNothing() {
  123.         assertEquals(4, personManager.getAllPersons().size());
  124.     }
  125.  
  126.     @Test
  127.     public void checkAdding() throws Exception {
  128.         Person person = new Person();
  129.         person.setName("Janek");
  130.         person.setYob(1939);
  131.  
  132.         assertEquals(1, personManager.addPerson(person));
  133.  
  134.         // Data verification
  135.  
  136.         IDataSet dbDataSet = this.getConnection().createDataSet();
  137.         ITable actualTable = dbDataSet.getTable("PERSON");
  138.         ITable filteredTable = DefaultColumnFilter.excludedColumnsTable(actualTable, new String[] { "ID" });
  139.         IDataSet expectedDataSet = getDataSet("ds-2.xml");
  140.         ITable expectedTable = expectedDataSet.getTable("PERSON");
  141.         // (posortowane? proszę bardzo:) // Assertion.assertEquals(new SortedTable(expectedTable),
  142.         // (posortowane? proszę bardzo:) //     new SortedTable(filteredTable, expectedTable.getTableMetaData()));
  143.         Assertion.assertEquals(expectedTable, filteredTable);
  144.         personManager.deletePerson(person); // wyczyszczenie
  145.     }
  146.  
  147.     @Override
  148.     protected DatabaseOperation getSetUpOperation() throws Exception {
  149.         return DatabaseOperation.INSERT;
  150.     }
  151.  
  152.     @Override
  153.     protected DatabaseOperation getTearDownOperation() throws Exception {
  154.         return DatabaseOperation.DELETE;
  155.     }
  156.  
  157.     @Override
  158.     protected IDataSet getDataSet() throws Exception {
  159.         return this.getDataSet("ds-1.xml");
  160.     }
  161.  
  162.     /**
  163.     * Returns dataset for selected resource
  164.     * @param datasetName filename in resources
  165.     * @return flat xml data set
  166.     * @throws Exception when there is a problem with opening dataset
  167.     */
  168.     protected IDataSet getDataSet(String datasetName) throws Exception {
  169.         URL url = getClass().getClassLoader().getResource(datasetName);
  170.         FlatXmlDataSet ret = new FlatXmlDataSetBuilder().build(url.openStream());
  171.         return ret;
  172.     }
  173.  
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement