Add operator class and tests

This PR depends on #5 before it can be merged.

Also, the tests won't pass until the entity PR is merged.
The variable naming is a bit wrong here, the link_ids are what is expected, we're fetching the data from the database to make sure it matches that.