blob: 03d871253cdcd190285ac365d431dd9f8eb669ea [file] [log] [blame]
// SPDX-License-Identifier: LGPL-2.1-or-later
// Copyright (c) 2012-2014 Monty Program Ab
// Copyright (c) 2015-2021 MariaDB Corporation Ab
package org.mariadb.jdbc.integration;
import static org.junit.jupiter.api.Assertions.*;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.sql.*;
import java.util.Map;
import java.util.Properties;
import org.junit.jupiter.api.*;
import org.mariadb.jdbc.Configuration;
public class DriverTest extends Common {
@Test
public void ensureDescriptionFilled() throws Exception {
Properties descr = new Properties();
try (InputStream inputStream =
Common.class.getClassLoader().getResourceAsStream("driver.properties")) {
descr.load(inputStream);
}
// check that description is present
for (Field field : Configuration.Builder.class.getDeclaredFields()) {
if (!field.getName().startsWith("_")) {
if (descr.get(field.getName()) == null && !"$jacocoData".equals(field.getName()))
throw new Exception(String.format("Missing %s description", field.getName()));
}
}
// check that no description without option
for (Map.Entry<Object, Object> entry : descr.entrySet()) {
// NoSuchFieldException will be thrown if not present
Configuration.Builder.class.getDeclaredField(entry.getKey().toString());
}
}
@Test
public void getPropertyInfo() throws SQLException {
Driver driver = new org.mariadb.jdbc.Driver();
assertEquals(0, driver.getPropertyInfo(null, null).length);
assertEquals(0, driver.getPropertyInfo("jdbc:bla//", null).length);
Properties properties = new Properties();
properties.put("password", "myPwd");
DriverPropertyInfo[] driverPropertyInfos =
driver.getPropertyInfo("jdbc:mariadb://localhost/db?user=root", properties);
for (DriverPropertyInfo driverPropertyInfo : driverPropertyInfos) {
if (!"$jacocoData".equals(driverPropertyInfo.name)) {
assertNotNull(
driverPropertyInfo.description, "no description for " + driverPropertyInfo.name);
}
}
}
@Test
public void basicInfo() {
Driver driver = new org.mariadb.jdbc.Driver();
assertEquals(3, driver.getMajorVersion());
assertTrue(driver.getMinorVersion() > -1);
assertTrue(driver.jdbcCompliant());
assertThrows(SQLFeatureNotSupportedException.class, driver::getParentLogger);
}
}