public ISession GetSession() { var documentClient = DocumentClientFactory.GetDocumentClientInstance(descriptor.CosmosDbConnectionString, options); var cosmosDbEventStore = new CosmosDbEventStore(documentClient, descriptor.DatabaseName, descriptor.CollectionName); var eventGridClientContext = EventGridClientFactory.GetEventGridClientContext(descriptor.EventGridConnectionString); var eventGridPublisher = new EventGridEventPublisher(eventGridClientContext.EventGridClient, eventGridClientContext.TopicHostName); return(new Session(new Repository(cosmosDbEventStore, eventGridPublisher))); }
public async Task PublishEventsAsync_WithCustomBuilders_Test() { //Arrange var json = await GetEventJsonFromFileAsync("SendGridEvents.json").ConfigureAwait(false); var settings = new EventGridEventPublisherSettings( j => $"/my/custom/subject/{j["sg_event_id"].Value<string>()}", j => $"CustomEventType.{j["event"].Value<string>()}"); var sut = new EventGridEventPublisher(_eventGridClient, _topicUri, settings); //Act await sut.PublishEventsAsync(json).ConfigureAwait(false); //Assert await _eventGridClient.Received() .PublishEventsWithHttpMessagesAsync( Arg.Is(_topicUri.Host), Arg.Is <IList <EventGridEvent> >(events => ValidatePublishedEvents(events, settings))) .ConfigureAwait(false); }