public async Task HandleError_ExceptionCaptured_Should_LogErrorAndCreateBugIssue() { // Arrange var telegramBotMock = new Mock <ITelegramBotClient>(); var loggerMock = new Mock <ILogger <TelegramUpdateHandler> >(); var githubServiceMock = new Mock <IGithubService>(); var handler = new TelegramUpdateHandler(null, githubServiceMock.Object, loggerMock.Object); var exception = new Exception("Fatal test exception"); // Act await handler.HandleErrorAsync(telegramBotMock.Object, exception, default); // Assert // Verify LogError was called loggerMock.Verify(x => x.Log( LogLevel.Error, It.IsAny <EventId>(), It.IsAny <It.IsAnyType>(), exception, (Func <It.IsAnyType, Exception, string>)It.IsAny <object>())); // Verify CreateBugIssue was called githubServiceMock.Verify(x => x.CreateBugIssue("Application Exception: Fatal test exception", exception, GithubIssueLabels.Telegram)); }
public async Task HandleError_ApiRequestException_Should_LogWarning(string exceptionMessage) { // Arrange var telegramBotMock = new Mock <ITelegramBotClient>(); var loggerMock = new Mock <ILogger <TelegramUpdateHandler> >(); var githubServiceMock = new Mock <IGithubService>(); var handler = new TelegramUpdateHandler(null, githubServiceMock.Object, loggerMock.Object); var exception = new ApiRequestException(exceptionMessage); // Act await handler.HandleErrorAsync(telegramBotMock.Object, exception, default); // Assert // Verify LogWarning was called loggerMock.Verify(x => x.Log( LogLevel.Warning, It.IsAny <EventId>(), It.IsAny <It.IsAnyType>(), It.IsAny <Exception>(), (Func <It.IsAnyType, Exception, string>)It.IsAny <object>())); // Verify CreateBugIssue was never called githubServiceMock.Verify(x => x.CreateBugIssue(It.IsAny <string>(), It.IsAny <Exception>(), It.IsAny <GithubIssueLabels>()), Times.Never); }