+1  A: 

You need a variant form of .Add (or of CreateTransaction) that lets you "inject" a (fake) date, exactly for such testing purposes.

Alex Martelli
A: 

You can use the same techniques as described in "How do I unit test for machine specific behaviour?", to inject/use/create/test with specific dates.

ChrisW