/*
* Copyright 2004-2014 H2 Group. Multiple-Licensed under the MPL 2.0,
* and the EPL 1.0 (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.test.unit;
import org.h2.engine.Mode;
import org.h2.test.TestBase;
/**
* Unit test for the Mode class.
*/
public class TestMode extends TestBase {
/**
* Run just this test.
*
* @param a ignored
*/
public static void main(String[] a) throws Exception {
TestBase.createCaller().init().test();
}
@Override
public void test() throws Exception {
testDb2ClientInfo();
testDerbyClientInfo();
testHsqlDbClientInfo();
testMsSqlServerClientInfo();
testMySqlClientInfo();
testOracleClientInfo();
testPostgresqlClientInfo();
}
private void testDb2ClientInfo() {
Mode db2Mode = Mode.getInstance("DB2");
assertTrue(db2Mode.supportedClientInfoPropertiesRegEx.matcher(
"ApplicationName").matches());
assertTrue(db2Mode.supportedClientInfoPropertiesRegEx.matcher(
"ClientAccountingInformation").matches());
assertTrue(db2Mode.supportedClientInfoPropertiesRegEx.matcher(
"ClientUser").matches());
assertTrue(db2Mode.supportedClientInfoPropertiesRegEx.matcher(
"ClientCorrelationToken").matches());
assertFalse(db2Mode.supportedClientInfoPropertiesRegEx.matcher(
"AnyOtherValue").matches());
}
private void testDerbyClientInfo() {
Mode derbyMode = Mode.getInstance("Derby");
assertNull(derbyMode.supportedClientInfoPropertiesRegEx);
}
private void testHsqlDbClientInfo() {
Mode hsqlMode = Mode.getInstance("HSQLDB");
assertNull(hsqlMode.supportedClientInfoPropertiesRegEx);
}
private void testMsSqlServerClientInfo() {
Mode msSqlMode = Mode.getInstance("MSSQLServer");
assertNull(msSqlMode.supportedClientInfoPropertiesRegEx);
}
private void testMySqlClientInfo() {
Mode mySqlMode = Mode.getInstance("MySQL");
assertTrue(mySqlMode.supportedClientInfoPropertiesRegEx.matcher(
"AnyString").matches());
}
private void testOracleClientInfo() {
Mode oracleMode = Mode.getInstance("Oracle");
assertTrue(oracleMode.supportedClientInfoPropertiesRegEx.matcher(
"anythingContaining.aDot").matches());
assertFalse(oracleMode.supportedClientInfoPropertiesRegEx.matcher(
"anythingContainingNoDot").matches());
}
private void testPostgresqlClientInfo() {
Mode postgresqlMode = Mode.getInstance("PostgreSQL");
assertTrue(postgresqlMode.supportedClientInfoPropertiesRegEx.matcher(
"ApplicationName").matches());
assertFalse(postgresqlMode.supportedClientInfoPropertiesRegEx.matcher(
"AnyOtherValue").matches());
}
}