It should be easy to implement a test case to test a usecase. The actual test would be handled by checkPostConditions().
It could even be possible to check & rollback, which means that usecases could be tested without actually making changes to existing files.
I added a test base class, but it uses the UsecaseInvoker - therefore changes made by tests are committed.
I added a TestUsecaseInvoker class which doesn't commit the transactions.