Forgot to check in the solution and project file.
Added a bunch more tests. Also added support for Moq, FakeItEasy, and Telerik JustMock.
Random refactoring.
Added testing resources folder. Refactored out some test resources. Refactored ZLMTests. Edited gitignore. Todo: Put ability to save the entire zone instead of just the program.
Merge branch 'Testing'
Merge branch 'master' into dev
Merge branch 'dev' into WebController
Merge branch 'WebController' into BackgroundProgram
Merge branch 'WebController' into dev
WIP: Have all the code restructured to do background programs. Need to test it.
This commit contains information about the last commit as well. Created the concept of an InterruptingInput. This is an input that can interrupt the processing of another program. So we can have a background program running, and then an interrupting input would interrupt that program to do something, and then the background program resumes. Added all that capability and the test for it. Still TODO: Add ability for interrupting input to choke out all other interrupting input processing. Currently, all interrupt requests are put in a queue. Make it so that an interrupting input is able to skip to the front of the queue.
Refactoring interrupting input test and code.
Added triggers for testing. Now using triggers to test the event-based stuff and event-chains. Refactored some code to allow extension of Pause and Resume methods of ZoneProgram.
Fixed some failing tests. Temporarily commented out a failing test that I could not get to work using FakeItEasy or Moq. It's not a hugely important test, but it does test the base layer of the application (ZoneProgram.Start). I've posted a question on StackOverflow (http://stackoverflow.com/questions/27681801/using-fakeiteasy-is-it-possible-to-create-a-dummy-object-of-a-type-that-takes-g) which, if answered, may end up telling me if the test can be fixed or needs to be replaced with a different test or just be taken out altogether. Finally, finished BackgroundProgram feature branch work for now, so about to merge this back into mainline. All tests are passing.
Merge branch 'dev' into BackgroundProgram
Merge branch 'BackgroundProgram' into dev
Merge branch 'dev'
Removed WebController because it is currently not being used and is causing build failures. It should be added after dev is merged to master because the dev branch is used for development and in VS, individual projects can be unloaded. This cannot be done in the Teamcity test environment so had to remove it from the test environment.
Merge branch 'dev'
Added the requirement to add an assembly attribute to the external zone and program assemblies for identification as to which assemblies need to be imported. Tested out code on the basement wing lights and the interrupting inputs are kind of working. It's working fine for synchronously feeding inputs, but not quite when inputs are send asynchronously. Need to fix that.