First attempt at a full integration test suite

This wraps the component in tests to make sure it's various functions remain intact.