1. Implemented a "RecordedTests" unit test case running recorded commands from file
2. Updated "DynamoViewModel.OnPlaybackTimerTick" method to shut Dynamo down when done
3. Updated "AskUserToSaveWorkspacesOrCancel" to not ask to save workspace in playback mode
1. Introduced "DynamoView.MakeSandboxForUnitTest" method for use in "RecordedTests"
2. Added verification codes in "RecordedTests.TestCreateNodesAndConnectors" test case
Reduced playback timer interval from 500ms to 20ms (5 commands per second)
1. Introduced "AutomationSettings" class to encapsulate automation stuff from DynamoViewModel
2. Refactored all playback related codes into "AutomationSettings" class
Folded recording functionality from "DynamoViewModel" into "AutomationSettings"
Moved "AutomationSettings" class (and referenced namespaces) out to a separate file
1. Introduced "PauseAfterPlayback" and "ExitAfterPlayback" properties to "AutomationSettings".
2. Retrofit these attributes back into "CreateNodesAndConnectors.xml" (although it's optional).
Updated "AutomationSettings" to honor both "ExitAfterPlayback" and "PauseAfterPlayback" attributes
Merge branch 'master' into Automation
1. Updated "DynamoView.MakeSandboxForUnitTest" to return the "DynamoView" for handling in test case
2. Added "RecordedTests.Exception" data member to track exception from view
3. Updated "OnShutdownTimerTick" to call "Dispatcher.BeginInvokeShutdown" to close the main window
Merge branch 'master' into Automation
1. Updated "AutomationSettings.BeginCommandPlayback" to take "System.Windows.Window" as an argument
2. Instead of shutting down the dispatcher (and fail subsequent test), each playback closes the main window
3. We now only start command playback when Dynamo window (and all assemblies) is fully loaded
Replaced the unused "Exception" data member in "RecordedTests" with "WorkspaceModel"
Merge branch 'master' into Automation
Merge branch 'master' into Automation
Implemented DeleteModelCommand and introduced DynamoViewModel.DeleteModelImpl method
1. Implemented "DynamoModel.DeleteModelInternal" method for used by "DynamoViewModel.DeleteModelImpl"
2. Updated "VisualizationIsDeletedWhenNodeIsRemoved" test case to use "DeleteModelInternal" directly
3. Updated "DeleteNodeAndItsConnectors/Delete" methods to use "DeleteModelCommand" instead
1. Added new NUnit test case "TestDeleteCommands" to test the new DeleteModelCommand
2. Added a new recorded command file "CreateAndDeleteNodes.xml" to use in "TestDeleteCommands" test
Merge branch 'master' into Automation
Fixed local unit test failure: GitHub_461_DeleteNodesFromCustomNodeWorkspaceAfterCollapse