[Fixes #9] Rewrite redis "integration" tests as unit tests

These in-process quasi-integration tests were written for expediency, when this behaviour
was split across several classes and we couldn't work out how to write these tests any
other way. This commit rewrites the tests as unit tests and gets rid of the hacky
"integration" tests which use mocks.