public void Init()
        {
            _synchronizationContext = new DedicatedThreadSynchronisationContext();

            _coreUIParent = new CoreUIParent()
            {
                SynchronizationContext = _synchronizationContext
            };

            _logger    = Substitute.For <ICoreLogger>();
            _aadPlugin = Substitute.For <IWamPlugin>();
            _msaPlugin = Substitute.For <IWamPlugin>();
            _wamProxy  = Substitute.For <IWamProxy>();
            _webAccountProviderFactory = Substitute.For <IWebAccountProviderFactory>();
            _accountPickerFactory      = Substitute.For <IAccountPickerFactory>();

            _wamBroker = new WamBroker(
                _coreUIParent,
                _logger,
                _aadPlugin,
                _msaPlugin,
                _wamProxy,
                _webAccountProviderFactory,
                _accountPickerFactory);
        }
 public void TestPromptMapping()
 {
     Assert.IsFalse(WamBroker.IsForceLoginPrompt(Prompt.NotSpecified));
     Assert.IsFalse(WamBroker.IsForceLoginPrompt(Prompt.NoPrompt));
     Assert.IsTrue(WamBroker.IsForceLoginPrompt(Prompt.SelectAccount));
     Assert.IsTrue(WamBroker.IsForceLoginPrompt(Prompt.ForceLogin));
     Assert.IsTrue(WamBroker.IsForceLoginPrompt(Prompt.Consent));
 }
        public async Task ATI_RequiresSyncContext_Async()
        {
            var wamBroker = new WamBroker(
                new CoreUIParent(), // no sync context here
                _logger,
                _aadPlugin,
                _msaPlugin,
                _wamProxy,
                _webAccountProviderFactory,
                _accountPickerFactory);

            using (var harness = CreateTestHarness())
            {
                var requestParams = harness.CreateAuthenticationRequestParameters(TestConstants.AuthorityHomeTenant); // AAD
                var atiParams     = new AcquireTokenInteractiveParameters();

                // Act
                var ex = await AssertException.TaskThrowsAsync <MsalClientException>(
                    () => wamBroker.AcquireTokenInteractiveAsync(requestParams, atiParams)).ConfigureAwait(false);

                // Assert
                Assert.AreEqual(MsalError.WamUiThread, ex.ErrorCode);
            }
        }