blob: 1abbeaf79b67f49cd88afd04382055550aa039a7 [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.testing.tests.proxyindirection.ProxyIndirectionTestModel;
import org.eclipse.persistence.testing.framework.TestModel;
import org.eclipse.persistence.testing.framework.TestSuite;
import org.eclipse.persistence.testing.framework.TestWarningException;
import org.eclipse.persistence.testing.tests.aggregate.AggregateTestModel;
import org.eclipse.persistence.testing.tests.directmap.DirectMapMappingBatchReadTest;
import org.eclipse.persistence.testing.tests.directmap.DirectMapMappingDeleteTest;
import org.eclipse.persistence.testing.tests.directmap.DirectMapMappingIndirectionTest;
import org.eclipse.persistence.testing.tests.directmap.MergeChangeSetWithDirectMapMappingTest;
import org.eclipse.persistence.testing.tests.employee.EmployeeBasicTestModel;
import org.eclipse.persistence.testing.tests.insurance.InsuranceObjectRelationalTestModel;
import org.eclipse.persistence.testing.tests.interfaces.InterfaceWithoutTablesTestModel;
import org.eclipse.persistence.testing.tests.mapping.MappingTestModel;
import org.eclipse.persistence.testing.tests.multipletable.MultipleTableModel;
/**
* This model tests mapping workbench integration with the foundation library
* by writing and reading project .xml files and then running some operations on them.
*/
public class XMLProjectWriterTestModel extends TestModel {
/**
* The constructor provides the test description.
*/
public XMLProjectWriterTestModel() {
setDescription("This model tests mapping workbench integration with the foundation library by writing and reading project .xml files and then running some operations on them.");
}
/**
* Add the Mapping Workbench Integration test system.
*/
@Override
public void addRequiredSystems() {
addRequiredSystem(new EmployeeWorkbenchIntegrationSystem());
addRequiredSystem(new InheritanceWorkbenchIntegrationSystem());
addRequiredSystem(new AggregateWorkbenchIntegrationSystem());
addRequiredSystem(new InterfaceWorkbenchIntegrationSystem());
addRequiredSystem(new DirectMapMappingMWIntergrationSystem());
addRequiredSystem(new CMWorkbenchIntegrationSystem());
addRequiredSystem(new ProxyIndirectionMWIntegrationSystem());
if(this.getSession().getPlatform().isOracle9()) {
addRequiredSystem(new InsuranceORWorkbenchIntegrationSystem());
}
addRequiredSystem(new MappingModelWorkbenchIntegrationSystem());
addRequiredSystem(new MultipleTableModelWorkbenchIntegrationSystem());
}
@Override
public void addTests() {
// Employee Tests
TestSuite employeeSuite = new TestSuite();
employeeSuite.setName("EmployeeModel");
employeeSuite.addTest(EmployeeBasicTestModel.getReadObjectTestSuite());
employeeSuite.addTest(EmployeeBasicTestModel.getUpdateObjectTestSuite());
employeeSuite.addTest(EmployeeBasicTestModel.getInsertObjectTestSuite());
employeeSuite.addTest(EmployeeBasicTestModel.getDeleteObjectTestSuite());
employeeSuite.addTest(EmployeeBasicTestModel.getReadAllTestSuite());
addTest(employeeSuite);
// Inheritance Tests
TestSuite inheritanceSuite = new TestSuite();
inheritanceSuite.setName("InheritanceModel");
inheritanceSuite.addTest(org.eclipse.persistence.testing.tests.inheritance.InheritanceTestModel.getDuplicateFieldTestSuite());
inheritanceSuite.addTest(org.eclipse.persistence.testing.tests.inheritance.InheritanceTestModel.getReadObjectTestSuite());
inheritanceSuite.addTest(org.eclipse.persistence.testing.tests.inheritance.InheritanceTestModel.getReadAllTestSuite());
inheritanceSuite.addTest(org.eclipse.persistence.testing.tests.inheritance.InheritanceTestModel.getDeleteObjectTestSuite());
inheritanceSuite.addTest(org.eclipse.persistence.testing.tests.inheritance.InheritanceTestModel.getInsertObjectTestSuite());
inheritanceSuite.addTest(org.eclipse.persistence.testing.tests.inheritance.InheritanceTestModel.getUpdateObjectTestSuite());
inheritanceSuite.addTest(org.eclipse.persistence.testing.tests.inheritance.InheritanceTestModel.getUnitOfWorkTestSuite());
inheritanceSuite.addTest(org.eclipse.persistence.testing.tests.inheritance.InheritanceTestModel.getUnitOfWorkCommitResumeTestSuite());
inheritanceSuite.addTest(org.eclipse.persistence.testing.tests.inheritance.InheritanceTestModel.getDeepInheritanceTestSuite());
inheritanceSuite.addTest(org.eclipse.persistence.testing.tests.inheritance.InheritanceTestModel.getTranslatedKeyInheritanceTestSuite());
addTest(inheritanceSuite);
// Aggregate Tests
TestSuite aggregateSuite = new TestSuite();
aggregateSuite.setName("AggregateModel");
boolean useNewAggregateCollectionOriginal = AggregateTestModel.useNewAggregateCollection;
// MW doesn't support new AggregateCollection apis - temporary set the flag to false
AggregateTestModel.useNewAggregateCollection = false;
aggregateSuite.addTest(AggregateTestModel.getReadObjectTestSuite());
aggregateSuite.addTest(AggregateTestModel.getUpdateObjectTestSuite());
aggregateSuite.addTest(AggregateTestModel.getReadAllTestSuite());
aggregateSuite.addTest(AggregateTestModel.getDeleteObjectTestSuite());
aggregateSuite.addTest(AggregateTestModel.getInsertObjectTestSuite());
aggregateSuite.addTest(AggregateTestModel.getUnitOfWorkTestSuite());
aggregateSuite.addTest(AggregateTestModel.getUnitOfWorkCommitResumeTestSuite());
aggregateSuite.addTest(AggregateTestModel.getCheckForNullUnitOfWorkTestSuite());
aggregateSuite.addTest(AggregateTestModel.getMergingUnitOfWorkTestSuite());
aggregateSuite.addTest(AggregateTestModel.getDescriptorPropertiesTestSuite());
aggregateSuite.addTest(AggregateTestModel.getEventTestSuite());
aggregateSuite.addTest(AggregateTestModel.getNestedAggregateTestSuite());
aggregateSuite.addTest(AggregateTestModel.getAggregateInheritanceTestSuite());
// reset the original value
AggregateTestModel.useNewAggregateCollection = useNewAggregateCollectionOriginal;
addTest(aggregateSuite);
// Interface Tests
TestSuite interfaceSuite = new TestSuite();
interfaceSuite.setName("InterfaceModel");
interfaceSuite.addTest(InterfaceWithoutTablesTestModel.getReadObjectTestSuite());
interfaceSuite.addTest(InterfaceWithoutTablesTestModel.getUpdateObjectTestSuite());
interfaceSuite.addTest(InterfaceWithoutTablesTestModel.getReadAllTestSuite());
interfaceSuite.addTest(InterfaceWithoutTablesTestModel.getDeleteObjectTestSuite());
interfaceSuite.addTest(InterfaceWithoutTablesTestModel.getInsertObjectTestSuite());
addTest(interfaceSuite);
//ExpressionPersistenceTests
addTest(new org.eclipse.persistence.testing.tests.workbenchintegration.ExpressionPersistence.ExpressionPersistenceTestSuite());
//ReportQuery
addTest(new org.eclipse.persistence.testing.tests.workbenchintegration.ExpressionPersistence.ReportQueryTestSuite());
//Query options
addTest(new org.eclipse.persistence.testing.tests.workbenchintegration.QueryOptions.QueryOptionTestSuite());
TestSuite readAndWriteSuite = new TestSuite();
readAndWriteSuite.setName("XMLReadAndWriteSuite");
readAndWriteSuite.setDescription("Tests to ensure various project options are properly read and written in XML.");
readAndWriteSuite.addTest(new QueryShouldMaintainCacheTest());
readAndWriteSuite.addTest(new ProjectXMLDatabaseTableNameTest());
readAndWriteSuite.addTest(new ProjectXMLOrderByQueryKeysTest());
readAndWriteSuite.addTest(new ProjectXMLQueryManagerQueryOrderTest());
readAndWriteSuite.addTest(new EventListenerCollectionTest()); //bug 295383
addTest(readAndWriteSuite);
TestSuite mappingSuite = new TestSuite();
mappingSuite.setName("MappingSuite");
mappingSuite.setDescription("Tests to ensure mappings are properly written to and read from XML.");
mappingSuite.addTest(new DirectMapMappingTest());
mappingSuite.addTest(new MergeChangeSetWithDirectMapMappingTest());
mappingSuite.addTest(new DirectMapMappingDeleteTest());
mappingSuite.addTest(new DirectMapMappingBatchReadTest());
mappingSuite.addTest(new DirectMapMappingIndirectionTest());
addTest(mappingSuite);
TestSuite proxyIndirectSuite = new TestSuite();
proxyIndirectSuite.setName("ProxyIndirectionSuite");
proxyIndirectSuite.setDescription("Tests to ensure proxy indirection is properly written to and read from XML.");
proxyIndirectSuite.addTest(ProxyIndirectionTestModel.getDeleteTestSuite());
proxyIndirectSuite.addTest(ProxyIndirectionTestModel.getReadTestSuite());
proxyIndirectSuite.addTest(ProxyIndirectionTestModel.getUnitOfWorkTestSuite());
proxyIndirectSuite.addTest(ProxyIndirectionTestModel.getWriteTestSuite());
proxyIndirectSuite.addTest(ProxyIndirectionTestModel.getProxyObjectTestSuite());
addTest(proxyIndirectSuite);
//Insurance model test
class TestSuiteOracleOnly extends TestSuite {
@Override
public void setup() {
if(!getSession().getPlatform().isOracle9()) {
throw new TestWarningException("This test suite is intended for Oracle databases only.");
}
}
}
TestSuiteOracleOnly insuranceORTestSuite = new TestSuiteOracleOnly();
insuranceORTestSuite.setName("InsuranceORTestModel");
insuranceORTestSuite.setDescription("Tests to enusre Insurance - object relationship descriptor - is properly written to and read from XML.");
insuranceORTestSuite.addTest(InsuranceObjectRelationalTestModel.getDeleteObjectTestSuite());
insuranceORTestSuite.addTest(InsuranceObjectRelationalTestModel.getInsertObjectTestSuite());
insuranceORTestSuite.addTest(InsuranceObjectRelationalTestModel.getReadAllTestSuite());
insuranceORTestSuite.addTest(InsuranceObjectRelationalTestModel.getReadObjectTestSuite());
insuranceORTestSuite.addTest(InsuranceObjectRelationalTestModel.getUpdateObjectTestSuite());
addTest(insuranceORTestSuite);
// Mapping model test
TestSuite mappingTestSuite = new TestSuite();
mappingTestSuite.setName("MappingTestModel");
mappingTestSuite.setDescription("Tests to enusre mapping model is properly written to and read from XML.");
mappingTestSuite.addTest(MappingTestModel.getReadObjectTestSuite());
mappingTestSuite.addTest(MappingTestModel.getReadAllTestSuite());
mappingTestSuite.addTest(MappingTestModel.getDeleteObjectTestSuite());
mappingTestSuite.addTest(MappingTestModel.getInsertObjectTestSuite());
mappingTestSuite.addTest(MappingTestModel.getUpdateObjectTestSuite());
mappingTestSuite.addTest(MappingTestModel.getUnitOfWorkTestSuite());
mappingTestSuite.addTest(MappingTestModel.getPublic1MTestSuite());
mappingTestSuite.addTest(MappingTestModel.getPrivateMMTestSuite());
mappingTestSuite.addTest(MappingTestModel.getTransformationMappingTestSuite());
mappingTestSuite.addTest(MappingTestModel.getUnitOfWorkCommitResumeTestSuite());
mappingTestSuite.addTest(MappingTestModel.getBidirectionalUnitOfWorkTestSuite());
mappingTestSuite.addTest(MappingTestModel.getAdditionalJoinTest());
mappingTestSuite.addTest(MappingTestModel.getBuildSelectionCriteriaTestSuite());
mappingTestSuite.addTest(MappingTestModel.getSameNameMappingTestSuite());
addTest(mappingTestSuite);
// Multiple table model test
TestSuite multipleTableTestSuite = new TestSuite();
multipleTableTestSuite.setName("MultipleTableTestModel");
MultipleTableModel.addTestsToTestCollection(multipleTableTestSuite);
addTest(multipleTableTestSuite);
}
}