| /* |
| * 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); |
| } |
| } |
| } |