blob: 30ec035d05cae91110d82e1190c3f3c811555bc2 [file] [log] [blame]
/**
* Copyright (c) 2011, 2014 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.eclipse.osbp.dsl.entity.xtext.tests.model.testcarstore3;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.Date;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.eclipse.osbp.dsl.entity.xtext.tests.AbstractJPATest;
public class ModelTestcarstore3Tests extends AbstractJPATest {
private static final String PERSISTENCE_UNIT_NAME = "testcarstore3";
private static EntityManagerFactory emf;
@Before
public void setUp() throws Exception {
super.setUp();
emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME,
properties);
EntityManager em = emf.createEntityManager();
EntityTransaction txn = em.getTransaction();
txn.begin();
Car c = em.find(Car.class, 2L);
assertNull(c);
try {
Query q = em.createNativeQuery("create schema SCHEMA3");
q.executeUpdate();
txn.commit();
} catch (Exception e) {
txn.rollback();
}
txn = em.getTransaction();
Manufacturer manufacturer = new Manufacturer();
Car car = new Car();
manufacturer.setName("OSBP Racecars");
car.setConstructiondate(new Date(2012, 4, 4));
car.setModelname("Beta Romeo");
car.setManufacturer(manufacturer);
txn.begin();
em.persist(manufacturer);
txn.commit();
}
@After
public void tearDown() throws Exception {
emf.close();
}
/**
* Delete cascade operation
*/
@Test
public void test1() {
EntityManager em = emf.createEntityManager();
EntityTransaction txn = em.getTransaction();
txn.begin();
Manufacturer m = em.find(Manufacturer.class, 1L);
Car c = em.find(Car.class, 2L);
assertNotNull(c);
em.remove(m);
txn.commit();
txn.begin();
c = em.find(Car.class, 2L);
assertNull(c);
txn.rollback();
}
// /**
// * Delete cascade operation
// */
// @Test
// public void test2() {
// EntityManager em = emf.createEntityManager();
// EntityTransaction txn = em.getTransaction();
// txn.begin();
//
// Car c = em.find(Car.class, 2L);
// assertNotNull(c);
// try {
// Query query = em.createQuery("delete from Manufacturer m");
// query.executeUpdate();
// fail("JPA does not support CASCADE DELETE on database level for default.");
// } catch (Exception e) {
// }
// txn.rollback();
// }
}