コード例 #1
0
        public async Task<UpsertResponse<IdentityProvider>> UpsertIdentityProviderAsync(IdentityProvider identityProvider, string eTag, CancellationToken cancellationToken)
        {
            EnsureArg.IsNotNull(identityProvider, nameof(identityProvider));

            var cosmosIdentityProvider = new CosmosIdentityProvider(identityProvider);
            var resultIdentityProvider = await UpsertSystemObjectAsync(cosmosIdentityProvider, CosmosIdentityProvider.IdentityProviderPartition, eTag, cancellationToken);
            return new UpsertResponse<IdentityProvider>(resultIdentityProvider.Resource.ToIdentityProvider(), resultIdentityProvider.OutcomeType, resultIdentityProvider.ETag);
        }
コード例 #2
0
        public async Task <IdentityProvider> UpsertIdentityProviderAsync(IdentityProvider identityProvider, CancellationToken cancellationToken)
        {
            EnsureArg.IsNotNull(identityProvider, nameof(identityProvider));

            var cosmosIdentityProvider = new CosmosIdentityProvider(identityProvider);
            var resultIdentityProvider = await UpsertSystemObjectAsync(cosmosIdentityProvider, CosmosIdentityProvider.IdentityProviderPartition, cancellationToken);

            return(resultIdentityProvider.ToIdentityProvider());
        }
コード例 #3
0
        public ControlPlaneDataStoreTests()
        {
            var scopedIDocumentClient = Substitute.For <IScoped <IDocumentClient> >();
            var documentClient        = Substitute.For <IDocumentClient>();

            scopedIDocumentClient.Value.Returns(documentClient);

            var cosmosDataStoreConfiguration = new CosmosDataStoreConfiguration
            {
                AllowDatabaseCreation = false,
                ConnectionMode        = ConnectionMode.Direct,
                ConnectionProtocol    = Protocol.Https,
                DatabaseId            = "testdatabaseid",
                Host = "https://fakehost",
                Key  = "ZmFrZWtleQ==",  // "fakekey"
                PreferredLocations = null,
            };

            var cosmosDocumentQueryFactory    = Substitute.For <ICosmosDocumentQueryFactory>();
            var identityProviderDocumentQuery = Substitute.For <IDocumentQuery <CosmosIdentityProvider> >();

            _cosmosIdentityProvider = Substitute.For <CosmosIdentityProvider>();
            _cosmosIdentityProvider.ETag.Returns("\"1\"");
            _cosmosIdentityProvider.Name.Returns("aad");
            _cosmosIdentityProvider.Audience.Returns(new[] { "fhir-api" });
            _cosmosIdentityProvider.Authority.Returns("https://login.microsoftonline.com/common");

            var feedResponse = new FeedResponse <dynamic>(new List <dynamic> {
                _cosmosIdentityProvider
            });

            identityProviderDocumentQuery.ExecuteNextAsync(Arg.Any <CancellationToken>()).Returns(feedResponse);
            cosmosDocumentQueryFactory.Create <CosmosIdentityProvider>(Arg.Any <IDocumentClient>(), Arg.Any <CosmosQueryContext>()).Returns(identityProviderDocumentQuery);

            var optionsMonitor = Substitute.For <IOptionsMonitor <CosmosCollectionConfiguration> >();

            optionsMonitor.Get(Constants.CollectionConfigurationName).Returns(new CosmosCollectionConfiguration {
                CollectionId = "collectionId"
            });

            var logger = NullLogger <ControlPlaneDataStore> .Instance;

            _controlPlaneDataStore = new ControlPlaneDataStore(
                scopedIDocumentClient,
                cosmosDataStoreConfiguration,
                cosmosDocumentQueryFactory,
                optionsMonitor,
                logger);
        }