public async Task SignOut_RaisesUserChangedEvent()
        {
            var userChangedRaised = false;
            var credentialStore = new MockCredentialStore();
            credentialStore.GetSavedCredentialsDelegate = s => null;
            var restorableStateService = new MockRestorableStateService();
            var target = new AccountService(null, restorableStateService, credentialStore);
            target.UserChanged += (sender, args) =>
                                      {
                                          userChangedRaised = true;
                                          Assert.IsNull(args.NewUserInfo);
                                      };

            target.SignOut();

            Assert.IsTrue(userChangedRaised);

            var signedInUser = await target.GetSignedInUserAsync();

            Assert.IsNull(signedInUser);
        }
        public async Task SignOut_RaisesUserChangedEvent()
        {
            bool userChangedRaised = false;
            var suspensionManagerState = new MockSuspensionManagerState();
            var credentialStore = new MockCredentialStore
                {
                    GetSavedCredentialsDelegate = s => null,
                    RemovedSavedCredentialsDelegate = s => Task.Delay(0)
                };

            var target = new AccountService(null, suspensionManagerState, credentialStore);
            target.UserChanged += (sender, args) =>
                {
                    userChangedRaised = true;
                    Assert.IsNull(args.NewUserInfo);
                };

            target.SignOut();

            Assert.IsTrue(userChangedRaised);

            var signedInUser = await target.GetSignedInUserAsync();

            Assert.IsNull(signedInUser);
        }