When adding behavior to an entity, it is desirable to do the following:
The following steps are recommended when adding new change handlers so that the additional behavior is sufficiently tested.
Run the test class as a JUnit test. The test class should complain that there was at least one rule that was not violated by the test class. For the rule that was not violated, add a test method to the test class and also add the "real" validation logic to the change handler class. Try executing the test class again. Continue implementing more test methods and rules until all rules are tested and the JUnit class completes successfully. Below is an example, test method for a rule that tests both a successful change and an unsuccessful change. It is important to insure that the validation error is thrown by the actual rule being tested.
public void testAddressOneLabelRequiredIfAddressOneIsAvailable() {
//pass
Country country = (Country) createQuery(
"from Country country").firstRow();
Country_DTO countryDto = country.getDTO();
country.setDTO(countryDto);
//fail
countryDto.setAddress1Available(Bool.TRUE);
countryDto.setLanguageAddress1("");
try {
country.setDTO(countryDto);
fail("A validation error should have been thrown");
} catch (ApplicationException e) {
verifyViolatedRule(Country_Chandler
.addressOneLabelRequiredIfAddressOneIsAvailable(), e);
}
}