Don't we have a TimeGenerator trait somewhere? That would simplify testing I think.

Or make something like...

```scala
trait TimeGeneratorModule {
  def timeGenerator: TimeGenerator
}

abstract class Database with TimeGeneratorModule  {
...}

val db = new Database with SystemTimeGeneratorModule

val testDB = new Database with MockTimeGeneratorModule
```