test framework for events