blob: a7fab0d707378ceaf719b12547d96a5061f0210f [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. 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:
// Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.testing.tests.workbenchintegration;
import org.eclipse.persistence.internal.helper.DatabaseTable;
import org.eclipse.persistence.sessions.Project;
import org.eclipse.persistence.testing.framework.AutoVerifyTestCase;
import org.eclipse.persistence.testing.framework.TestErrorException;
import org.eclipse.persistence.testing.models.employee.domain.Address;
import org.eclipse.persistence.testing.models.employee.relational.EmployeeProject;
import org.eclipse.persistence.sessions.factories.XMLProjectReader;
import org.eclipse.persistence.sessions.factories.XMLProjectWriter;
public class ProjectXMLDatabaseTableNameTest extends AutoVerifyTestCase {
private String m_tableNameAfterWrite;
private String m_tableNameBeforeWrite;
private static final String TABLE_NAME_QUALIFIER = "FULLY.QUALIFIED";
private static final String TEMP_FILE = "TempProjectSafeToDelete.xml";
public ProjectXMLDatabaseTableNameTest() {
setDescription("Tests that fully qualified table names are written out.");
}
@Override
public void reset() {
}
@Override
protected void setup() throws Exception {
}
@Override
public void test() {
Project project1 = new EmployeeProject();
m_tableNameBeforeWrite = project1.getDescriptor(Address.class).getTableName();
DatabaseTable dbTable = project1.getDescriptor(Address.class).getTable(m_tableNameBeforeWrite);
dbTable.setName(m_tableNameBeforeWrite);
dbTable.setTableQualifier(TABLE_NAME_QUALIFIER);
// Write out the project with changes and read back in again.
XMLProjectWriter.write(TEMP_FILE, project1);
Project project2 = XMLProjectReader.read(TEMP_FILE, getClass().getClassLoader());
m_tableNameAfterWrite =
project2.getDescriptor(Address.class).getTable(m_tableNameBeforeWrite).getQualifiedName();
}
@Override
protected void verify() {
if (!m_tableNameAfterWrite.equals(TABLE_NAME_QUALIFIER + "." + m_tableNameBeforeWrite)) {
throw new TestErrorException("The table name was incorrectly written out. Expected: " +
TABLE_NAME_QUALIFIER + "." + m_tableNameBeforeWrite + ", wrote: " +
m_tableNameAfterWrite);
}
}
}