Using the composite pattern to represent tests and suites