The relation between two entities has a condition property. The condition can be any string, according to the needs of the testing tool. If the condition passed to the Download method matches the relation's condition, that relation is used in the download. If no condition is set for the relation, or if an empty string is passed to the condition argument of the Download method, the relation is used unconditionally with the download.
You can define that an entity pairing match more than one condition value by using more than one relation. To download a dependent entity with its owner if condition = Value1 OR Value2, create two relations. Set the condition for one relation to Value1 and the condition for the other to Value2.
For relations that do not include files, a match between the download condition and the relation condition is sufficient.
Downloading files represented by asset repository items (ARIs) is further filtered by the filter mask of the ARI. The filter mask is a bitmap. The meaning of the bitmap depends on the testing tool. A bit-wise AND is performed between the mask passed to the Download method and the item's filter mask. If the result is not zero, the file is downloaded.
For example, an application might have message files in different languages. The conditions might be EN, FR, NL and so on.
In addition a test may run under two environments, which require different messages. The tests can also be run interactively or automatically. Different resources are required for interactive and automatic runs. The filter mask might be:
|Environment 1, interactive||0001|
|Environment 2, interactive||0010|
|Environment 1, non-interactive||0100|
|Environment 2, non-interactive||1000|
To download all the assets, pass an empty string ("") for the condition and 15 (1111) for the filter mask.