Mocking with JodaTime's DateTime and Google Guava's Supplier

If you're a seasoned unit tester, you've learned to take note when you see any code working with time,*concurrency*, random, persistence and disc I/O. The reason for this is that tests can be very brittle and sometimes down-right impossible to test properly. This post will show how to abstract out "time" by injecting a replacement for it in the consumer. This post will be using Spring 3 as the Dependency Injection container, though Guice, other DI containers or constructor/setters on POJOs would work......