package org.mariadb.jdbc;
import org.junit.BeforeClass;
import org.junit.Test;
import org.mariadb.jdbc.internal.util.DefaultOptions;
import org.mariadb.jdbc.internal.util.constant.HaMode;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import static org.junit.Assert.*;
public class ParserTest extends BaseTest {
/**
* Initialisation.
*
* @throws SQLException exception
*/
@BeforeClass()
public static void initClass() throws SQLException {
createTable("table1", "id1 int auto_increment primary key");
createTable("table2", "id2 int auto_increment primary key");
}
@Test
public void poolVerification() throws Exception {
ArrayList<HostAddress> hostAddresses = new ArrayList<>();
hostAddresses.add(new HostAddress(hostname, port));
UrlParser urlParser = new UrlParser(database, hostAddresses, DefaultOptions.defaultValues(HaMode.NONE), HaMode.NONE);
urlParser.setUsername("USER");
urlParser.setPassword("PWD");
urlParser.parseUrl("jdbc:mariadb://localhost:3306/db");
assertEquals("USER", urlParser.getUsername());
assertEquals("PWD", urlParser.getPassword());
MariaDbDataSource datasource = new MariaDbDataSource();
datasource.setUser("USER");
datasource.setPassword("PWD");
datasource.setUrl("jdbc:mariadb://localhost:3306/db");
}
@Test
public void mysqlDatasourceVerification() throws Exception {
MariaDbDataSource datasource = new MariaDbDataSource();
datasource.setUser(username);
datasource.setPassword(password);
datasource.setUrl("jdbc:mysql://" + hostname + ":" + port + "/" + database);
try (Connection connection = datasource.getConnection()) {
//ok
}
}
@Test
public void libreOfficeBase() {
String sql;
try {
Statement statement = sharedConnection.createStatement();
sql = "INSERT INTO table1 VALUES (1),(2),(3),(4),(5),(6)";
statement.execute(sql);
sql = "INSERT INTO table2 VALUES (1),(2),(3),(4),(5),(6)";
statement.execute(sql);
// uppercase OJ
sql = "SELECT table1.id1, table2.id2 FROM { OJ table1 LEFT OUTER JOIN table2 ON table1.id1 = table2.id2 }";
ResultSet rs = statement.executeQuery(sql);
for (int count = 1; count <= 6; count++) {
assertTrue(rs.next());
assertEquals(count, rs.getInt(1));
assertEquals(count, rs.getInt(2));
}
// mixed oJ
sql = "SELECT table1.id1, table2.id2 FROM { oJ table1 LEFT OUTER JOIN table2 ON table1.id1 = table2.id2 }";
rs = statement.executeQuery(sql);
for (int count = 1; count <= 6; count++) {
assertTrue(rs.next());
assertEquals(count, rs.getInt(1));
assertEquals(count, rs.getInt(2));
}
} catch (SQLException e) {
fail();
}
}
}