| /* |
| * Copyright (c) 2012, 2020 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: |
| // 11/22/2012-2.5 Guy Pelletier |
| // - 389090: JPA 2.1 DDL Generation Support (index metadata support) |
| // 01/23/2013-2.5 Guy Pelletier |
| // - 350487: JPA 2.1 Specification defined support for Stored Procedure Calls |
| package org.eclipse.persistence.testing.tests.jpa21.advanced; |
| |
| import jakarta.persistence.EntityManager; |
| |
| import org.eclipse.persistence.testing.framework.junit.JUnitTestCase; |
| import org.eclipse.persistence.testing.models.jpa21.advanced.xml.ddl.Fork; |
| import org.eclipse.persistence.testing.models.jpa21.advanced.xml.ddl.ForkUser; |
| |
| import junit.framework.TestSuite; |
| import junit.framework.Test; |
| |
| public class XMLIndexTestSuite extends JUnitTestCase { |
| public XMLIndexTestSuite() {} |
| |
| public XMLIndexTestSuite(String name) { |
| super(name); |
| setPuName("MulitPU-3"); |
| } |
| |
| /** |
| * Return the the persistence unit name for this test suite. |
| */ |
| @Override |
| public String getPersistenceUnitName() { |
| return "MulitPU-3"; |
| } |
| |
| public static Test suite() { |
| TestSuite suite = new TestSuite(); |
| suite.setName("XMLIndexTestSuite"); |
| |
| suite.addTest(new XMLIndexTestSuite("testDDLPersistenceUnit")); |
| |
| return suite; |
| } |
| |
| /** |
| * Create some forks and users to make sure we don't have any metadata |
| * mapping issues. |
| */ |
| public void testDDLPersistenceUnit() { |
| // Load scripts for this PU are built for MySql |
| if (getPlatform().isMySQL()) { |
| EntityManager em = createEntityManager(); |
| |
| try { |
| beginTransaction(em); |
| |
| Fork fork1 = new Fork(); |
| fork1.setColor("Black"); |
| fork1.setStyle("Carving"); |
| fork1.setPrice(2.99); |
| fork1.setRental(0.99); |
| em.persist(fork1); |
| |
| Fork fork2 = new Fork(); |
| fork2.setColor("Gray"); |
| fork2.setStyle("Cheese"); |
| fork2.setPrice(7.99); |
| fork2.setRental(1.99); |
| em.persist(fork2); |
| |
| Fork fork3 = new Fork(); |
| fork3.setColor("Brushed Nickel"); |
| fork3.setStyle("Chip"); |
| fork3.setPrice(7.99); |
| fork3.setRental(1.99); |
| em.persist(fork3); |
| |
| ForkUser forkUser1 = new ForkUser(); |
| forkUser1.setName("User1"); |
| forkUser1.addFork(fork1); |
| forkUser1.addFork(fork2); |
| forkUser1.addFork(fork3); |
| fork1.addUser(forkUser1); |
| fork2.addUser(forkUser1); |
| fork3.addUser(forkUser1); |
| em.persist(forkUser1); |
| |
| ForkUser forkUser2 = new ForkUser(); |
| forkUser2.setName("User2"); |
| forkUser2.addFork(fork2); |
| forkUser2.addFork(fork3);; |
| fork2.addUser(forkUser2); |
| fork3.addUser(forkUser2); |
| em.persist(forkUser2); |
| |
| ForkUser forkUser3 = new ForkUser(); |
| forkUser3.setName("User3"); |
| forkUser3.addFork(fork1); |
| forkUser3.addFork(fork3);; |
| fork1.addUser(forkUser3); |
| fork3.addUser(forkUser3); |
| em.persist(forkUser3); |
| |
| commitTransaction(em); |
| |
| } catch (RuntimeException e) { |
| if (isTransactionActive(em)){ |
| rollbackTransaction(em); |
| } |
| |
| throw e; |
| } finally { |
| closeEntityManager(em); |
| } |
| } |
| } |
| } |