public async Task WebhooksControllerPublishCreatePostReturnsExceptionForConflict(string mediaTypeName, string eventType) { // Arrange var eventGridEvents = BuildValidEventGridEvent(eventType, new EventGridEventData { ItemId = ItemIdForCreate.ToString(), Api = "https://somewhere.com", }); using var controller = BuildWebhooksController(mediaTypeName); controller.HttpContext.Request.Body = BuildStreamFromModel(eventGridEvents); A.CallTo(() => FakeWebhooksService.ProcessMessageAsync(A <WebhookCacheOperation> .Ignored, A <Guid> .Ignored, A <Guid> .Ignored, A <string> .Ignored)).Returns(HttpStatusCode.Conflict); // Act await Assert.ThrowsAsync <InvalidDataException>(async() => await controller.ReceiveEvents().ConfigureAwait(false)).ConfigureAwait(false); // Assert A.CallTo(() => FakeWebhooksService.ProcessMessageAsync(A <WebhookCacheOperation> .Ignored, A <Guid> .Ignored, A <Guid> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly(); }
public async Task WebhooksControllerPublishCreatePostReturnsOkForCreate(string mediaTypeName, string eventType) { // Arrange const HttpStatusCode expectedResponse = HttpStatusCode.OK; var eventGridEvents = BuildValidEventGridEvent(eventType, new EventGridEventData { ItemId = ItemIdForCreate.ToString(), Api = "https://somewhere.com", }); using var controller = BuildWebhooksController(mediaTypeName); controller.HttpContext.Request.Body = BuildStreamFromModel(eventGridEvents); A.CallTo(() => FakeWebhooksService.ProcessMessageAsync(A <WebhookCacheOperation> .Ignored, A <Guid> .Ignored, A <Guid> .Ignored, A <string> .Ignored)).Returns(HttpStatusCode.Created); // Act var result = await controller.ReceiveEvents().ConfigureAwait(false); // Assert A.CallTo(() => FakeWebhooksService.ProcessMessageAsync(A <WebhookCacheOperation> .Ignored, A <Guid> .Ignored, A <Guid> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly(); var okResult = Assert.IsType <OkResult>(result); Assert.Equal((int)expectedResponse, okResult.StatusCode); }