Newer
Older
simple-database / test / nl / astraeus / database / BaseTest.java
rnentjes on 11 Dec 2016 1 KB Small fixes
package nl.astraeus.database;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import nl.astraeus.database.jdbc.ConnectionPool;
import nl.astraeus.database.jdbc.ConnectionProvider;
import nl.astraeus.database.test.model.Company;
import nl.astraeus.database.test.model.Person;

import org.junit.AfterClass;
import org.junit.Ignore;

/**
 * Date: 11/16/13
 * Time: 12:27 AM
 */
@Ignore
public class BaseTest {

    protected static SimpleDatabase db;

    SimpleDao<Person> personDao = new SimpleDao<>(Person.class);
    SimpleDao<Company> companyDao = new SimpleDao<>(Company.class);

    public static void createDatabase(final String url) {
        db = SimpleDatabase.define(new ConnectionPool(new ConnectionProvider() {
            @Override
            public Connection getConnection() {
                try {
                    Class.forName("org.h2.Driver");

                    Connection connection = DriverManager.getConnection(url, "sa", "");
                    connection.setAutoCommit(false);

                    return connection;
                } catch (ClassNotFoundException | SQLException e) {
                    throw new IllegalStateException(e);
                }
            }
        }));

        db.setExecuteDDLUpdates(true);
    }

    @AfterClass
    public static void clearMetaData() {
        db.dispose();
    }

    void createPersons() {
        personDao.execute(new SimpleDao.Executor<Person>() {
            @Override
            public void execute(SimpleDao<Person> dao) {
                dao.insert(new Person("Rien", 40, "Road"));
                dao.insert(new Person("Jan", 32, "Straat"));
                dao.insert(new Person("Ronald", 31, "Wherever"));
                dao.insert(new Person("Piet", 26, "Weg"));
                dao.insert(new Person("Klaas", 10, "Pad"));
            }
        });
    }
}