Example #1
0
        public async Task GivenAValidIdPDefinition_WhenICallTheCreateDelegate_ThenTheProviderShouldBePersisted()
        {
            // Setup: Create a database with an Account and two existing Subscriptions.
            await using var db = ClientsDbTestProvider.CreateInMemoryClientDb();
            var account = DtoProvider.CreateValidAccountDefinition();

            var createAccountDelegate = new CreateAccountDelegate(db, Mapper);

            account = await createAccountDelegate.CreateAccountAsync(account);

            var identityProvider = new IdentityProviderDto {
                Name = "Health Dialog Secondary IdP"
            };

            // System under test: CreateIdentityProviderDelegate
            var createIdentityProvider = new CreateIdentityProviderDelegate(db, Mapper);

            // Exercise: invoke Create Identity Provider
            identityProvider = await createIdentityProvider.CreateIdentityProvider(account.AccountId, identityProvider);

            // Assert: the number of Accounts in the InMemory database is still 1
            // Assert: the number of Subscriptions in the InMemory database is still 2
            // Assert: the number of Subscriptions in the InMemory database is now 2
            db.Accounts.Count().Should().Be(1, $"The number of {nameof(db.Accounts)} in the ClientsDb is not 1");
            db.Subscriptions.Count().Should().Be(2, $"The number of {nameof(db.Subscriptions)} in the ClientsDb is not 2");
            db.IdentityProviders.Count().Should().Be(2, $"The number of {nameof(db.IdentityProviders)} in the ClientsDb is not 2");

            identityProvider.IdentityProviderId.Should().NotBe(default);
 public IdentityProvidersController(GetIdentityProvidersDelegate getIdentityProviders, CreateIdentityProviderDelegate createIdentityProvider, UpdateIdentityProviderDelegate updateIdentityProvider)
 {
     _getIdentityProviders   = getIdentityProviders;
     _createIdentityProvider = createIdentityProvider;
     _updateIdentityProvider = updateIdentityProvider;
 }