private static bool ValidatePublishedEvents( ICollection <EventGridEvent> events, EventGridEventPublisherSettings settings) { if (events.Count != 11) { return(false); } foreach (var @event in events) { if (@event.Data is JObject json && @event.Id.Equals(json["sg_event_id"].Value <string>(), StringComparison.OrdinalIgnoreCase) && @event.Subject.Equals(settings.BuildEventSubject(json), StringComparison.OrdinalIgnoreCase) && @event.EventType.Equals(settings.BuildEventType(json), StringComparison.OrdinalIgnoreCase) && json["custom_arg1"].Value <string>().Equals("test!")) { continue; } return(false); } return(true); }
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); }
public void Init() { _sut = EventGridEventPublisherSettings.Default; }