Hibernate.orgCommunity Documentation

Chapter 9. Building from source and testing

9.1. Building from source
9.2. Contributing
9.3. Envers integration tests

Envers, as a module of Hibernate, uses the standard Hibernate build. So all the usual build targets (compile, test, install) will work.

The public Hibernate Git repository is hosted at GitHub and can be browsed using GitHub. The source can be checked out using either

            git clone https://github.com/hibernate/hibernate-core hibernate-core.git
            git clone git://github.com/hibernate/hibernate-core.git
            

If you want to contribute a fix or new feature, either:

The tests use, by default, use a H2 in-memory database. The configuration file can be found in src/test/resources/hibernate.test.cfg.xml.

The tests use TestNG, and can be found in the org.hibernate.envers.test.integration package (or rather, in subpackages of this package). The tests aren't unit tests, as they don't test individual classes, but the behaviour and interaction of many classes, hence the name of package.

A test normally consists of an entity (or two entities) that will be audited and extends the AbstractEntityTest class, which has one abstract method: configure(Ejb3Configuration). The role of this method is to add the entities that will be used in the test to the configuration.

The test data is in most cases created in the "initData" method (which is called once before the tests from this class are executed), which normally creates a couple of revisions, by persisting and updating entities. The tests first check if the revisions, in which entities where modified are correct (the testRevisionCounts method), and if the historic data is correct (the testHistoryOfXxx methods).