/*
* 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.integration.components;
import org.hibernate.Session;
import org.hibernate.envers.test.BaseEnversFunctionalTestCase;
import org.hibernate.envers.test.Priority;
import org.hibernate.envers.test.entities.components.UniquePropsEntity;
import org.hibernate.envers.test.entities.components.UniquePropsNotAuditedEntity;
import org.hibernate.mapping.Column;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.testing.TestForIssue;
import org.junit.Assert;
import org.junit.Test;
/**
* @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com)
*/
@TestForIssue(jiraKey = "HHH-6636")
public class PropertiesGroupTest extends BaseEnversFunctionalTestCase {
private PersistentClass uniquePropsAudit = null;
private PersistentClass uniquePropsNotAuditedAudit = null;
private UniquePropsEntity entityRev1 = null;
private UniquePropsNotAuditedEntity entityNotAuditedRev2 = null;
@Override
protected String[] getMappings() {
return new String[] {
"mappings/components/UniquePropsEntity.hbm.xml",
"mappings/components/UniquePropsNotAuditedEntity.hbm.xml"
};
}
@Test
@Priority(10)
public void initData() {
uniquePropsAudit = metadata().getEntityBinding(
"org.hibernate.envers.test.entities.components.UniquePropsEntity_AUD"
);
uniquePropsNotAuditedAudit = metadata().getEntityBinding(
"org.hibernate.envers.test.entities.components.UniquePropsNotAuditedEntity_AUD"
);
// Revision 1
Session session = openSession();
session.getTransaction().begin();
UniquePropsEntity ent = new UniquePropsEntity();
ent.setData1( "data1" );
ent.setData2( "data2" );
session.persist( ent );
session.getTransaction().commit();
entityRev1 = new UniquePropsEntity( ent.getId(), ent.getData1(), ent.getData2() );
// Revision 2
session.getTransaction().begin();
UniquePropsNotAuditedEntity entNotAud = new UniquePropsNotAuditedEntity();
entNotAud.setData1( "data3" );
entNotAud.setData2( "data4" );
session.persist( entNotAud );
session.getTransaction().commit();
entityNotAuditedRev2 = new UniquePropsNotAuditedEntity( entNotAud.getId(), entNotAud.getData1(), null );
}
@Test
public void testAuditTableColumns() {
Assert.assertNotNull( uniquePropsAudit.getTable().getColumn( new Column( "DATA1" ) ) );
Assert.assertNotNull( uniquePropsAudit.getTable().getColumn( new Column( "DATA2" ) ) );
Assert.assertNotNull( uniquePropsNotAuditedAudit.getTable().getColumn( new Column( "DATA1" ) ) );
Assert.assertNull( uniquePropsNotAuditedAudit.getTable().getColumn( new Column( "DATA2" ) ) );
}
@Test
public void testHistoryOfUniquePropsEntity() {
Assert.assertEquals( entityRev1, getAuditReader().find( UniquePropsEntity.class, entityRev1.getId(), 1 ) );
}
@Test
public void testHistoryOfUniquePropsNotAuditedEntity() {
Assert.assertEquals(
entityNotAuditedRev2,
getAuditReader().find( UniquePropsNotAuditedEntity.class, entityNotAuditedRev2.getId(), 2 )
);
}
}