blob: ead51bd53b5ba2b2067f5c1ad76059892e17250b [file] [log] [blame]
/*
* Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2015, 2019 IBM Corporation. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// 03/19/2015 - Rick Curtis
// - 462586 : Add national character support for z/OS.
// 04/30/2015 - Will Dazey
// - 465063 : Changed VendorNameToPlatformMapping file. Updating tests.
package org.eclipse.persistence.jpa.test.ddl;
import jakarta.persistence.EntityManagerFactory;
import org.eclipse.persistence.internal.helper.DBPlatformHelper;
import org.eclipse.persistence.jpa.test.basic.model.Employee;
import org.eclipse.persistence.jpa.test.framework.DDLGen;
import org.eclipse.persistence.jpa.test.framework.Emf;
import org.eclipse.persistence.jpa.test.framework.EmfRunner;
import org.eclipse.persistence.logging.DefaultSessionLog;
import org.eclipse.persistence.platform.database.DatabasePlatform;
import org.eclipse.persistence.sessions.DatabaseSession;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(EmfRunner.class)
public class TestDBPlatformHelper {
@Emf(createTables = DDLGen.DROP_CREATE, classes = { Employee.class })
private EntityManagerFactory emf;
DefaultSessionLog log = new DefaultSessionLog();
@Test
public void test() {
emf.createEntityManager().close();
Class<?> dbClass = emf.unwrap(DatabaseSession.class).getDatasourcePlatform().getClass();
Assert.assertFalse("Database Platform: " + dbClass, DatabasePlatform.class.equals(dbClass));
}
@Test
public void testDB2ZOS() {
//Returned from jcc driver
Assert.assertEquals(org.eclipse.persistence.platform.database.DB2ZPlatform.class.getName(), getPlatformClass("DB2", "10", "DSN10015"));
}
@Test
public void testDB2I() {
//Returned from jcc driver (DRDA)
Assert.assertEquals(org.eclipse.persistence.platform.database.DB2MainframePlatform.class.getName(), getPlatformClass("AS", "10", "QSQ07020"));
//Returned from type 2 native driver & type 4 open source driver (non-DRDA)
Assert.assertEquals(org.eclipse.persistence.platform.database.DB2MainframePlatform.class.getName(), getPlatformClass("DB2 UDB for AS/400", "07.02.0000", "V7R2m0"));
}
@Test
public void testMySQL() {
//Returned from jcc driver (DRDA)
Assert.assertEquals(org.eclipse.persistence.platform.database.MySQLPlatform.class.getName(), getPlatformClass("MySQL", "5", "5.5.5-10.1.33-MariaDB"));
}
@Test
public void testDerby() {
//Returned from jcc driver (DRDA)
Assert.assertEquals(org.eclipse.persistence.platform.database.JavaDBPlatform.class.getName(), getPlatformClass("Apache Derby", "10", "10.12.1.1 - (1704137)"));
}
@Test
public void testOracle() {
//Returned from jcc driver (DRDA)
Assert.assertEquals("org.eclipse.persistence.platform.database.oracle.OraclePlatform", getPlatformClass("Oracle", "7", "Oracle Database 7c"));
Assert.assertEquals("org.eclipse.persistence.platform.database.oracle.OraclePlatform", getPlatformClass("Oracle", "8", "Oracle Database 8c"));
Assert.assertEquals("org.eclipse.persistence.platform.database.oracle.Oracle9Platform", getPlatformClass("Oracle", "9", "Oracle Database 9c"));
Assert.assertEquals("org.eclipse.persistence.platform.database.oracle.Oracle10Platform", getPlatformClass("Oracle", "10", "Oracle Database 10c"));
Assert.assertEquals("org.eclipse.persistence.platform.database.oracle.Oracle11Platform", getPlatformClass("Oracle", "11", "Oracle Database 11c"));
Assert.assertEquals("org.eclipse.persistence.platform.database.oracle.Oracle12Platform", getPlatformClass("Oracle", "12", "Oracle Database 12c"));
Assert.assertEquals("org.eclipse.persistence.platform.database.oracle.Oracle18Platform", getPlatformClass("Oracle", "18", "Oracle Database 18c"));
}
@Test
public void testHanaDB() {
//Returned from jcc driver (DRDA)
Assert.assertEquals(org.eclipse.persistence.platform.database.HANAPlatform.class.getName(), getPlatformClass("HDB", "2", "2.00.040.00.1553674765"));
}
private String getPlatformClass(String productName, String minorVersion, String majorVersion){
return DBPlatformHelper.getDBPlatform(productName, minorVersion, majorVersion, log);
}
}