public void LmiWebhookReceiverServiceExtractEventReturnsExpected(string eventType, WebhookCommand webhookCommand, string api) { // Arrange var eventGridEventData = new EventGridEventData { ItemId = Guid.NewGuid().ToString(), Api = api, }; var eventGridEvents = BuildValidEventGridEvent(eventType, eventGridEventData); var expectedResult = new WebhookRequestModel { WebhookCommand = webhookCommand, EventId = Guid.Parse(eventGridEvents.First().Id), EventType = eventGridEvents.First().EventType, ContentId = Guid.Parse(eventGridEventData.ItemId), Url = new Uri(eventGridEventData.Api, UriKind.Absolute), SubscriptionValidationResponse = null, }; var requestBody = JsonConvert.SerializeObject(eventGridEvents); // Act var result = lmiWebhookReceiverService.ExtractEvent(requestBody); // Assert Assert.Equal(expectedResult.WebhookCommand, result.WebhookCommand); Assert.Equal(expectedResult.EventType, result.EventType); Assert.Equal(expectedResult.ContentId, result.ContentId); Assert.Equal(expectedResult.Url, result.Url); Assert.Null(result.SubscriptionValidationResponse?.ValidationResponse); }
public async Task PostDraftEventAsync(string displayText, Uri?apiEndpoint, Guid?contentId) { logger.LogInformation($"Posting to event grid for: {displayText}"); var eventGridEventData = new EventGridEventData { ItemId = contentId.ToString(), Api = apiEndpoint?.ToString(), DisplayText = displayText, VersionId = Guid.NewGuid().ToString(), Author = eventGridClientOptions.SubjectPrefix, }; await eventGridService.SendEventAsync(eventGridEventData, eventGridClientOptions.SubjectPrefix, EventTypeDraft).ConfigureAwait(false); }
public Task PostPublishedEventAsync(string displayText, Uri?apiEndpoint, Guid?contentId) { logger.LogInformation($"Posting to event grid for: {displayText}"); var eventGridEventData = new EventGridEventData { ItemId = contentId.ToString(), Api = apiEndpoint?.ToString(), DisplayText = displayText, VersionId = Guid.NewGuid().ToString(), Author = eventGridClientOptions.SubjectPrefix, }; return(eventGridService.SendEventAsync(eventGridEventData, eventGridClientOptions.SubjectPrefix, EventTypePublished)); }
public void LmiWebhookReceiverServiceExtractEventRaisesExceptionForInvalidApi() { // Arrange var eventGridEventData = new EventGridEventData { ItemId = Guid.NewGuid().ToString(), Api = "https:somewhere.com", }; var eventGridEvents = BuildValidEventGridEvent(EventTypePublished, eventGridEventData); var requestBody = JsonConvert.SerializeObject(eventGridEvents); // Act var exceptionResult = Assert.Throws <InvalidDataException>(() => lmiWebhookReceiverService.ExtractEvent(requestBody)); // Assert Assert.Equal($"Invalid Api url '{eventGridEventData.Api}' received for Event Id: {eventGridEvents.First().Id}", exceptionResult.Message); }
public void LmiWebhookReceiverServiceExtractEventRaisesExceptionForInvalidItemId() { // Arrange var eventGridEventData = new EventGridEventData { ItemId = string.Empty, Api = "https://somewhere.com", }; var eventGridEvents = BuildValidEventGridEvent(EventTypePublished, eventGridEventData); var requestBody = JsonConvert.SerializeObject(eventGridEvents); // Act var exceptionResult = Assert.Throws <InvalidDataException>(() => lmiWebhookReceiverService.ExtractEvent(requestBody)); // Assert Assert.Equal($"Invalid Guid for EventGridEvent.Data.ItemId '{eventGridEventData.ItemId}'", exceptionResult.Message); }
public async Task PostTransformationEventActivity([ActivityTrigger] EventGridPostRequestModel?eventGridPostRequest) { _ = eventGridPostRequest ?? throw new ArgumentNullException(nameof(eventGridPostRequest)); logger.LogInformation($"Posting to event grid for: {eventGridPostRequest.DisplayText}: {eventGridPostRequest.EventType}"); var eventGridEventData = new EventGridEventData { ItemId = $"{eventGridPostRequest.ItemId}", Api = eventGridPostRequest.Api, DisplayText = eventGridPostRequest.DisplayText, VersionId = Guid.NewGuid().ToString(), Author = eventGridClientOptions.SubjectPrefix, }; await eventGridService.SendEventAsync(eventGridEventData, eventGridClientOptions.SubjectPrefix, eventGridPostRequest.EventType).ConfigureAwait(false); }
public void LmiWebhookReceiverServiceExtractEventReturnsNone() { // Arrange var eventGridEventData = new EventGridEventData { ItemId = Guid.NewGuid().ToString(), Api = "https://somewhere.com/api/", }; var eventGridEvents = BuildValidEventGridEvent(EventTypePublished, eventGridEventData); var expectedResult = new WebhookRequestModel { WebhookCommand = WebhookCommand.None, }; var requestBody = JsonConvert.SerializeObject(eventGridEvents); // Act var result = lmiWebhookReceiverService.ExtractEvent(requestBody); // Assert Assert.Equal(expectedResult.WebhookCommand, result.WebhookCommand); }