Commits

Christian Specht committed 49266b0 Draft

shutdown launcher if RunCommandSet throws

Comments (0)

Files changed (2)

src/MissileSharp.Launcher/ViewModels/MainWindowViewModel.cs

 
         private void FireMissile(Object obj)
         {
-            this.model.RunCommandSet(obj.ToString());
+            try
+            {
+                this.model.RunCommandSet(obj.ToString());
+            }
+            catch (Exception ex)
+            {
+                Shutdown(ex.Message);
+                return;
+            }
         }
 
         private void Shutdown(string message)

src/MissileSharp.Tests/Launcher/MainWindowViewModelTests.cs

 
             this.commandcenter.Verify(mock => mock.RunCommandSet("test"));
         }
+
+        [Test]
+        public void FireCommand_RunCommandSetThrows_AppShutsDown()
+        {
+            this.commandcenter.Setup(stub => stub.RunCommandSet(It.IsAny<string>())).Throws<Exception>();
+            var viewmodel = SetupViewModel();
+            viewmodel.FireCommand.Execute("test");
+
+            this.shutdownservice.Verify(mock => mock.Shutdown());
+        }
     }
 }
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.