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); }
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()); }
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); }