blob: 115898bdbb60d7c5e974456ed611203eac0b05cc [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.jpa.advanced;
import org.eclipse.persistence.testing.framework.TestSuite;
import org.eclipse.persistence.testing.tests.jpa.CMP3TestModel;
import org.eclipse.persistence.testing.models.jpa.advanced.AdvancedTableCreator;
import org.eclipse.persistence.testing.models.jpa.advanced.EmployeePopulator;
import org.eclipse.persistence.internal.jpa.EntityManagerImpl;
import org.eclipse.persistence.testing.framework.JUnitTestCase;
/**
* <p><b>Purpose</b>: To collect the tests that will test specifics of our
* EJB3.0 implementation through the use of the EntityContainer. In order for
* this test model to work correctly the EntityContainer must be initialized
* through the command line agent.
*/
public class JPAAdvancedTestModel extends CMP3TestModel{
@Override
public void setup(){
super.setup();
new AdvancedTableCreator().replaceTables(getServerSession());
EmployeePopulator employeePopulator = new EmployeePopulator();
employeePopulator.buildExamples();
//Persist the examples in the database
employeePopulator.persistExample(((EntityManagerImpl)getEntityManager()).getServerSession());
}
@Override
public void addTests(){
addTest(getEntityManagerTestSuite());
addTest(getAnnotationTestSuite());
TestSuite tests = new TestSuite();
tests.setName("UpdateAllQueryAdvancedJunitTest");
tests.addTests(JUnitTestCase.suite(UpdateAllQueryAdvancedJunitTest.class));
addTest(tests);
tests = new TestSuite();
tests.setName("JoinedAttributeAdvancedJunitTest");
tests.addTests(JUnitTestCase.suite(JoinedAttributeAdvancedJunitTest.class));
addTest(tests);
tests = new TestSuite();
tests.setName("ReportQueryAdvancedJUnitTest");
tests.addTests(JUnitTestCase.suite(ReportQueryAdvancedJUnitTest.class));
addTest(tests);
addTest(CascadePersistJUnitTestSuite.suite());
}
public static TestSuite getEntityManagerTestSuite() {
TestSuite suite = new TestSuite();
suite.setName("EntityManager Tests");
suite.setDescription("This suite provides testing for EntityManager");
suite.addTest(new EMPersistAndCommitTest());
suite.addTest(new EMRemoveAndCommitTests());
suite.addTest(new EMMultipleFlushTests());
suite.addTest(new EMModifyAndCommitTest());
suite.addTest(new EMPersistAndFlushTest());
suite.addTest(new EMCascadingPersistAndFlushTest());
suite.addTest(new EMCascadingPersistAndCommitTest());
suite.addTest(new EMRemoveAndPersistTest());
suite.addTest(new EMModifyAndMergeTest());
suite.addTest(new EMCascadingModifyAndMergeTest());
suite.addTest(new EMRemoveAndFlushTest());
suite.addTest(new EMCascadingRemoveAndFlushTest());
suite.addTest(new EMFlushBatchWritingTest());
// Until Bug#4288681 is fixed, this test won't run
// suite.addTest(new ModifyAndFlushTest());
// Until Bug#4291927 is fixed, these tests won't run
suite.addTest(new EMCascadingModifyAndRefreshTest());
suite.addTest(new EMModifyAndRefreshTest());
return suite;
}
public static TestSuite getAnnotationTestSuite() {
TestSuite suite = new TestSuite();
suite.setName("Annotation Tests");
suite.setDescription("This suite provides testing for the O/R metadata annotations");
suite.addTest(getCallbackEventTestSuite());
suite.addTest(getPrimaryKeyTestSuite());
suite.addTest(new XMLAnnotationMergingTest());
return suite;
}
public static TestSuite getCallbackEventTestSuite() {
TestSuite suite = new TestSuite();
suite.setName("Callback Event Tests");
suite.setDescription("This suite provides testing for the O/R metadata Callback event annotations");
suite.addTest(new EntityListenerPrePersistTest());
suite.addTest(new EntityListenerPostPersistTest());
suite.addTest(new EntityListenerPreUpdateTest());
suite.addTest(new EntityListenerPostUpdateTest());
suite.addTest(new EntityListenerPreRemoveTest());
suite.addTest(new EntityListenerPostRemoveTest());
suite.addTest(new EntityListenerPostLoadTest());
suite.addTest(new EntityListenerPostLoadTransactionTest());
suite.addTest(new EntityListenerPostLoadRefreshTest());
suite.addTest(new EntityMethodPrePersistTest());
suite.addTest(new EntityMethodPostPersistTest());
suite.addTest(new EntityMethodPreUpdateTest());
suite.addTest(new EntityMethodPostUpdateTest());
suite.addTest(new EntityMethodPreRemoveTest());
suite.addTest(new EntityMethodPostRemoveTest());
suite.addTest(new EntityMethodPostLoadTest());
suite.addTest(new EntityMethodPostLoadTransactionTest());
suite.addTest(new EntityMethodPostLoadRefreshTest());
suite.addTest(new NonDBChangePreUpdateTest());
return suite;
}
public static TestSuite getPrimaryKeyTestSuite() {
TestSuite suite = new TestSuite();
suite.setName("Primary key Tests");
suite.setDescription("This suite provides testing for the O/R metadata primary key tests");
suite.addTest(new PrimaryKeyClassTest());
return suite;
}
}