winIDEA SDK
Class diagram

isystem.test consists of two main groups of classes, which are shown in the class diagram below.

The first group of classes with the main class isys::CTestSpecification contains data classes. They contain data for for test execution, for example name of the function to be tested, values of function parameters and expected return values. They are also able to parse test data written in YAML and emitting test case specifications to an output stream.

Getters in these classes have additional bool parameter isConst. If you will need returned object for reading only, specify this value as true. If you intend to modify data, specify it as false.
Background: Getters return empty object instead of null reference, when the requested item is not specified, and iConst is set to true. To save memory, this empty object is not stored to object hierarchy, and will be deleted as soon as it is no longer needed.

The second group with the main class isys::CTestCase contains test execution logic. For Java and Python there are specific implementations of isys::CTestCase called JTestCase and PTestCase. They provide possibility for execution of script methods given in test specification. We can also use the class isys::CTestCase from other languages, but script extension methods can not be used in such case.