public void Embedded()
        {
            // Arrange
            var webUIFactory = new MsalDesktopWebUiFactory(
                fallbackToLegacyWebBrowser: false,
                isWebView2AvailableForTest: () => true);

            // Act
            var webUi = webUIFactory.CreateAuthenticationDialog(_parent, WebViewPreference.Embedded, _requestContext);

            // Assert
            Assert.IsTrue(webUi is WebView2WebUi);
        }
        public void NetCoreFactory_System()
        {
            // Arrange
            var webUIFactory = new MsalDesktopWebUiFactory(
                fallbackToLegacyWebBrowser: false,
                isWebView2AvailableForTest: (_) => true);

            // Act
            var webUi = webUIFactory.CreateAuthenticationDialog(
                _parent,
                WebViewPreference.System,
                _requestContext);

            // Assert
            Assert.IsTrue(webUi is DefaultOsBrowserWebUi);
        }
        public void DefaultEmbedded_Legacy()
        {
            // Arrange
            var webUIFactory = new MsalDesktopWebUiFactory(
                fallbackToLegacyWebBrowser: true,
                isWebView2AvailableForTest: () => false);


            // Act
            var webUi = webUIFactory.CreateAuthenticationDialog(
                _parent,
                WebViewPreference.NotSpecified,
                _requestContext);

            // Assert
            Assert.IsTrue(webUi is Client.Platforms.Features.WinFormsLegacyWebUi.InteractiveWebUI);
        }
        public void DefaultEmbedded_WebView2NotAvailable()
        {
            // Arrange
            var webUIFactory = new MsalDesktopWebUiFactory(
                fallbackToLegacyWebBrowser: false,
                isWebView2AvailableForTest: () => false);


            // Act
            var ex = AssertException.Throws <MsalClientException>(() =>
                                                                  webUIFactory.CreateAuthenticationDialog(
                                                                      _parent,
                                                                      WebViewPreference.NotSpecified,
                                                                      _requestContext));

            // Assert
            Assert.AreEqual(MsalError.WebView2NotInstalled, ex.ErrorCode);
        }
        public void IsSystemWebUiAvailable()
        {
            var webUIFactory = new MsalDesktopWebUiFactory();

            Assert.IsTrue(webUIFactory.IsSystemWebViewAvailable);
        }