/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.envers.test;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import org.hibernate.Session;
import org.hibernate.envers.AuditReader;
import org.hibernate.envers.AuditReaderFactory;
import org.hibernate.envers.configuration.EnversSettings;
import org.hibernate.resource.transaction.spi.TransactionStatus;
import org.hibernate.testing.junit4.BaseNonConfigCoreFunctionalTestCase;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
/**
* @author Strong Liu (stliu@hibernate.org)
*/
@RunWith(EnversRunner.class)
public abstract class BaseEnversFunctionalTestCase extends BaseNonConfigCoreFunctionalTestCase {
private String auditStrategy;
@Parameterized.Parameters
public static List<Object[]> data() {
return Arrays.asList(
new Object[] {null},
new Object[] {"org.hibernate.envers.strategy.ValidityAuditStrategy"}
);
}
public void setTestData(Object[] data) {
auditStrategy = (String) data[0];
}
public String getAuditStrategy() {
return auditStrategy;
}
@Override
protected Session getSession() {
Session session = super.getSession();
if ( session == null || !session.isOpen() ) {
return openSession();
}
return session;
}
protected AuditReader getAuditReader() {
Session session = getSession();
if(session.getTransaction().getStatus() != TransactionStatus.ACTIVE ){
session.getTransaction().begin();
}
return AuditReaderFactory.get( getSession() );
}
@Override
protected void addSettings(Map settings) {
super.addSettings( settings );
settings.put( EnversSettings.USE_REVISION_ENTITY_WITH_NATIVE_ID, "false" );
}
@Override
protected String getBaseForMappings() {
return "";
}
}