Tests for audit runner

Includes unit and functional tests

\cc @mcquin @sersut 
In the functional tests, you `double("events").as_null_object`. Do you want to do that here, too?