Search in sources :

Example 1 with MySQL

use of fr.xephi.authme.datasource.MySQL in project AuthMeReloaded by AuthMe.

the class DataSourceProvider method createDataSource.

/**
 * Sets up the data source.
 *
 * @return the constructed data source
 * @throws SQLException when initialization of a SQL data source failed
 */
private DataSource createDataSource() throws SQLException {
    DataSourceType dataSourceType = settings.getProperty(DatabaseSettings.BACKEND);
    DataSource dataSource;
    switch(dataSourceType) {
        case MYSQL:
            dataSource = new MySQL(settings, mySqlExtensionsFactory);
            break;
        case POSTGRESQL:
            dataSource = new PostgreSqlDataSource(settings, mySqlExtensionsFactory);
            break;
        case SQLITE:
            dataSource = new SQLite(settings, dataFolder);
            break;
        default:
            throw new UnsupportedOperationException("Unknown data source type '" + dataSourceType + "'");
    }
    if (settings.getProperty(DatabaseSettings.USE_CACHING)) {
        dataSource = new CacheDataSource(dataSource, playerCache);
    }
    if (DataSourceType.SQLITE.equals(dataSourceType)) {
        checkDataSourceSize(dataSource);
    }
    return dataSource;
}
Also used : CacheDataSource(fr.xephi.authme.datasource.CacheDataSource) DataSourceType(fr.xephi.authme.datasource.DataSourceType) MySQL(fr.xephi.authme.datasource.MySQL) SQLite(fr.xephi.authme.datasource.SQLite) PostgreSqlDataSource(fr.xephi.authme.datasource.PostgreSqlDataSource) CacheDataSource(fr.xephi.authme.datasource.CacheDataSource) DataSource(fr.xephi.authme.datasource.DataSource) PostgreSqlDataSource(fr.xephi.authme.datasource.PostgreSqlDataSource)

Example 2 with MySQL

use of fr.xephi.authme.datasource.MySQL in project AuthMeReloaded by AuthMe.

the class MySqlDefaultChangerTest method shouldSetMySqlFieldOnInitialization.

@Test
public void shouldSetMySqlFieldOnInitialization() {
    // given
    MySQL mySql = mock(MySQL.class);
    MySqlDefaultChanger defaultChanger = createDefaultChanger(mySql);
    // when
    defaultChanger.setMySqlField();
    // then
    assertThat(ReflectionTestUtils.getFieldValue(MySqlDefaultChanger.class, defaultChanger, "mySql"), sameInstance(mySql));
}
Also used : MySQL(fr.xephi.authme.datasource.MySQL) Test(org.junit.Test)

Example 3 with MySQL

use of fr.xephi.authme.datasource.MySQL in project AuthMeReloaded by AuthMe.

the class MySqlDefaultChangerTest method shouldReturnMySqlConnection.

@Test
public void shouldReturnMySqlConnection() throws SQLException {
    // given
    Settings settings = mock(Settings.class);
    TestHelper.returnDefaultsForAllProperties(settings);
    HikariDataSource dataSource = mock(HikariDataSource.class);
    Connection connection = mock(Connection.class);
    given(dataSource.getConnection()).willReturn(connection);
    MySQL mySQL = SqlDataSourceTestUtil.createMySql(settings, dataSource);
    MySqlDefaultChanger defaultChanger = createDefaultChanger(mySQL);
    // when
    Connection result = defaultChanger.getConnection(mySQL);
    // then
    assertThat(result, equalTo(connection));
    verify(dataSource).getConnection();
}
Also used : HikariDataSource(com.zaxxer.hikari.HikariDataSource) MySQL(fr.xephi.authme.datasource.MySQL) Connection(java.sql.Connection) Settings(fr.xephi.authme.settings.Settings) Test(org.junit.Test)

Aggregations

MySQL (fr.xephi.authme.datasource.MySQL)3 Test (org.junit.Test)2 HikariDataSource (com.zaxxer.hikari.HikariDataSource)1 CacheDataSource (fr.xephi.authme.datasource.CacheDataSource)1 DataSource (fr.xephi.authme.datasource.DataSource)1 DataSourceType (fr.xephi.authme.datasource.DataSourceType)1 PostgreSqlDataSource (fr.xephi.authme.datasource.PostgreSqlDataSource)1 SQLite (fr.xephi.authme.datasource.SQLite)1 Settings (fr.xephi.authme.settings.Settings)1 Connection (java.sql.Connection)1