/******************************************************************************* * Copyright (c) 1998, 2015 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 v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * 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. */ 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()); } 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 { 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); } }