From 7e8f9fbf619313389065950244924c9e46cf0658 Mon Sep 17 00:00:00 2001 From: Benedikt Schroeder Date: Tue, 19 Jun 2018 21:15:22 +0200 Subject: [PATCH] Add NullArgumentException for Run with main window --- src/Avalonia.Controls/Application.cs | 8 ++++---- .../Avalonia.Controls.UnitTests/ApplicationTests.cs | 12 +++++++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Avalonia.Controls/Application.cs b/src/Avalonia.Controls/Application.cs index ffe4a9c513..99575771da 100644 --- a/src/Avalonia.Controls/Application.cs +++ b/src/Avalonia.Controls/Application.cs @@ -243,14 +243,14 @@ namespace Avalonia Dispatcher.UIThread.InvokeAsync( () => { - if (mainWindow == null) + if (MainWindow != null) { return; } - if (MainWindow != null) + if (mainWindow == null) { - return; + throw new ArgumentNullException(nameof(mainWindow)); } if (!mainWindow.IsVisible) @@ -283,7 +283,7 @@ namespace Avalonia if (!IsExiting) { OnExit?.Invoke(this, EventArgs.Empty); - } + } } /// diff --git a/tests/Avalonia.Controls.UnitTests/ApplicationTests.cs b/tests/Avalonia.Controls.UnitTests/ApplicationTests.cs index 85f95b2b5c..694a6d2278 100644 --- a/tests/Avalonia.Controls.UnitTests/ApplicationTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ApplicationTests.cs @@ -1,6 +1,7 @@ // Copyright (c) The Avalonia Project. All rights reserved. // Licensed under the MIT license. See licence.md file in the project root for full license information. +using System; using System.Collections.Generic; using Avalonia.UnitTests; using Xunit; @@ -103,5 +104,14 @@ namespace Avalonia.Controls.UnitTests Assert.Empty(Application.Current.Windows); } } + + [Fact] + public void Throws_ArgumentNullException_On_Run_If_MainWindow_Is_Null() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + Assert.Throws(() => { Application.Current.Run(null); }); + } + } } -} +} \ No newline at end of file