public async Task HandleAsync_ShouldReturnFalse_WhenContainerCreateThrows() { // Arrange var createContainerData = new RequestContainerCreateDTO { StorageAccountName = _storageAccountName, ContainerName = "unittestcontainer" + Guid.NewGuid().ToString() }; var blobContainerCreateId = Guid.NewGuid().ToString(); var testEvent = new EventGridEvent { Data = JObject.FromObject(createContainerData), EventType = CustomEventTypes.RequestBlobContainerCreate, DataVersion = "1.0", }; // Arrange Mocks Mock.Get(_storageService) .Setup(x => x.ContainerCreateAsync(createContainerData.StorageAccountName, createContainerData.ContainerName, It.IsAny <StorageClientProviderContext>())) .ThrowsAsync(new InvalidOperationException()); // Act var handleAsyncResult = await _handler.HandleAsync(testEvent).ConfigureAwait(true); // Assert handleAsyncResult.ShouldBe(false); Uri appInsightUri; Mock.Get(_logger).Verify(x => x.LogExceptionObject(out appInsightUri, LogEventIds.GridwichUnhandledException, It.IsAny <Exception>(), It.IsAny <object>()), Times.Once); }
public async Task HandleAsync_ShouldThrow_WhenInvalidEvent() { // Arrange var createContainerData = new RequestContainerCreateDTO { StorageAccountName = _storageAccountName, ContainerName = "unittestcontainer" + Guid.NewGuid().ToString() }; var blobContainerCreateId = Guid.NewGuid().ToString(); var testEvent = new EventGridEvent { Data = JObject.FromObject(createContainerData), EventType = CustomEventTypes.RequestCreateMetadata, DataVersion = "1.0", }; // // Act & Assert await Assert.ThrowsAsync <ArgumentException>(async() => await _handler.HandleAsync(testEvent).ConfigureAwait(true)).ConfigureAwait(true); }
public async Task HandleAsync_ShouldReturnTrueAndNotLog_WhenNoErrors() { // Arrange var createContainerData = new RequestContainerCreateDTO { StorageAccountName = _storageAccountName, ContainerName = "unittestcontainer" + Guid.NewGuid().ToString() }; var blobContainerCreateId = Guid.NewGuid().ToString(); var testEvent = new EventGridEvent { Data = JObject.FromObject(createContainerData), EventType = CustomEventTypes.RequestBlobContainerCreate, DataVersion = "1.0", }; // Arrange Mocks Mock.Get(_storageService) .Setup(x => x.ContainerCreateAsync(createContainerData.StorageAccountName, createContainerData.ContainerName, It.IsAny <StorageClientProviderContext>())) .ReturnsAsync(true); EventGridEvent resultEvent = null; Mock.Get(_eventGridPublisher) .Setup(x => x.PublishEventToTopic(It.IsAny <EventGridEvent>())) .Callback <EventGridEvent>((eventGridEvent) => resultEvent = eventGridEvent) .ReturnsAsync(true); // Act var handleAsyncResult = await _handler.HandleAsync(testEvent).ConfigureAwait(true); // Assert handleAsyncResult.ShouldBe(true); resultEvent.ShouldNotBeNull(); resultEvent.EventType.ShouldBe(CustomEventTypes.ResponseBlobContainerSuccess); var resultEventData = (ResponseContainerCreatedSuccessDTO)resultEvent.Data; resultEventData.StorageAccountName.ShouldBe(createContainerData.StorageAccountName); resultEventData.ContainerName.ShouldBe(createContainerData.ContainerName); }