[Tests] Naming + Mock Refactor

- Trying out this far more descriptive naming convention based on:
-- The class under test
-- The scenario being tested
-- The expected result
- Updated several tests to use mocks instead of concrete classes where possible.