YAML based Model Definition - TestMonkeys/jEntityTest GitHub Wiki
In situations where you don't want to add jEntityTest annotations to your models, or you don't have access to modify the models due to an external library used - you can define the models in yaml. Below is an example model defined (refer to the inline comments for explanations):
# entity class described by the model
entity: org.testmonkeys.jentitytest.test.integration.yaml.test.Person
# list of properties defined in the model
properties:
id:
# list of abort conditions to be applied to the property
abortConditions:
- strategy: IgnoreComparisonIfExpectedNull
name:
# list of validators to be applied to the property
validators:
# Strategy name (either short name or full class name)
- strategy: ValidateRegex
# strategy parameters definition
parameters:
regExp: ^[0-9A-Za-z!@.,;:'"?-]{1,10}\z
# comparison strategy that will be used for this property
comparisonStrategy:
strategy: StringComparison
parameters:
caseSensitive: false
trim: true
createdAt:
comparisonStrategy:
strategy: DateTimeComparison
parameters:
delta: 1
unit: MINUTES
employmentRecord:
comparisonStrategy:
strategy: ChildEntityComparison
knownAddresses:
comparisonStrategy:
strategy: ChildEntityListComparison
To load the model - use the following snippet as an example:
InputStream inputStream = this.getClass()
.getClassLoader()
.getResourceAsStream("yamlComparisonModels/person.yaml");
EntityComparatorContext.getInstance().defineComparisonModel(inputStream);
inputStream.close();