Added basic unit tests around UI handlers

Move MockObject into its own file
Use TestCase.fail instead of AssertionError as per unittest doc.
Added VS project files

Updated .gitignore to reflect additional unversioned VS files.