public void AndWhenIdamsThrowsAnException_Then_WeStillMarkProviderAsUpdated()
        {
            var f = new WhenSyncingIdamsUsersFixture().SetupIdamsToThrowException();

            Assert.ThrowsAsync <ApplicationException>(() => f.Sut.SyncUsers());
            f.VerifyItMarksProviderAsIdamsUpdated();
        }
        public async Task AndWhenThereAreNoProviders_Then_WeDontCallTheIdamsService()
        {
            var f = new WhenSyncingIdamsUsersFixture().WithNoProviders();
            await f.Sut.SyncUsers();

            f.VerifyIdamsServiceIsNotCalled();
        }
        public async Task Then_WeMarkProviderAsUpdated()
        {
            var f = new WhenSyncingIdamsUsersFixture();
            await f.Sut.SyncUsers();

            f.VerifyItMarksProviderAsIdamsUpdated();
        }
        public async Task Then_TheNormalAndSuperUsersAreSyncedWithLocalUsers()
        {
            var f = new WhenSyncingIdamsUsersFixture();
            await f.Sut.SyncUsers();

            f.VerifyIdamsUsersAreSyncedInUserRepository();
        }
        public async Task Then_WeCallIdamsServiceForThisProvider()
        {
            var f = new WhenSyncingIdamsUsersFixture();
            await f.Sut.SyncUsers();

            f.VerifyWeCallIdamsServiceForThisProvider();
        }
        public async Task Then_WeGetNextProviderToProcess()
        {
            var f = new WhenSyncingIdamsUsersFixture();
            await f.Sut.SyncUsers();

            f.VerifyItGetsTheNextProvider();
        }
        public void AndWhenIdamsThrowsAnException_Then_TheExceptionIsRethrown()
        {
            var f = new WhenSyncingIdamsUsersFixture().SetupIdamsToThrowException();

            Assert.ThrowsAsync <ApplicationException>(() => f.Sut.SyncUsers());
        }