Kala should be able to be tested as part of a larger system. In other words, if a client uses Kala to trigger various actions as part of a workflow, tests should be able to simulate the passage of time to ensure that the client is correctly scheduling jobs and that these notifications fire at the appropriate times.
This PR does two things:
[x] Add the ability for a Job to inherit a Clock from its Cache, so that client tests can give the Cache a Clock, init Jobs, and then modify the time via the Clock as appropriate.
[x] Demonstrates this new ability with a working test.
Kala should be able to be tested as part of a larger system. In other words, if a client uses Kala to trigger various actions as part of a workflow, tests should be able to simulate the passage of time to ensure that the client is correctly scheduling jobs and that these notifications fire at the appropriate times.
This PR does two things: