Integration tests

Includes positive and negative checks, with automatic discovery of test cases in the `test-data` directory.