package org.hibernate.envers.test.integration.tools; import org.hibernate.Session; import org.hibernate.envers.test.BaseEnversFunctionalTestCase; import org.hibernate.envers.test.Priority; import org.hibernate.envers.test.entities.StrTestEntity; import org.hibernate.testing.TestForIssue; import org.hibernate.tool.EnversSchemaGenerator; import org.junit.Assert; import org.junit.Test; import java.util.Arrays; /** * @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com) */ @TestForIssue(jiraKey = "HHH-7106") public class SchemaExportTest extends BaseEnversFunctionalTestCase { private Integer id = null; @Override protected Class<?>[] getAnnotatedClasses() { return new Class[] {StrTestEntity.class}; } protected boolean createSchema() { // Disable schema auto generation. return false; } @Test @Priority(10) public void testSchemaCreation() { // Generate complete schema. new EnversSchemaGenerator(configuration()).export().create( true, true ); // Populate database with test data. Session session = getSession(); session.getTransaction().begin(); StrTestEntity entity = new StrTestEntity("data"); session.save(entity); session.getTransaction().commit(); id = entity.getId(); } @Test @Priority(9) public void testAuditDataRetrieval() { Assert.assertEquals(Arrays.asList(1), getAuditReader().getRevisions(StrTestEntity.class, id)); Assert.assertEquals(new StrTestEntity("data", id), getAuditReader().find(StrTestEntity.class, id, 1)); } @Test @Priority(8) public void testSchemaDrop() { new EnversSchemaGenerator(configuration()).export().drop( true, true ); } }