public void Log_UsesCorrectMessageImportance_WhenLogLevelIsSpecified(LogLevel logLevel, string message, MessageImportance?expectedMessageImportance) { var mockLogger = new MockSdkLogger(); var logger = new NuGetSdkLogger(mockLogger); logger.Log(logLevel, message); switch (logLevel) { case LogLevel.Warning: logger.Errors.Should().BeEmpty(); logger.Warnings.Should().BeEquivalentTo(new[] { message }); break; case LogLevel.Error: logger.Errors.Should().BeEquivalentTo(new[] { message }); logger.Warnings.Should().BeEmpty(); break; case LogLevel.Debug: case LogLevel.Verbose: case LogLevel.Information: case LogLevel.Minimal: logger.Errors.Should().BeEmpty(); logger.Warnings.Should().BeEmpty(); mockLogger.LoggedMessages.Should().BeEquivalentTo(new[] { (message, expectedMessageImportance) });
private void VerifyLog(Action <NuGetSdkLogger> action, string expectedMessage, MessageImportance?expectedMessageImportance, bool isWarning, bool isError) { var mockLogger = new MockSdkLogger(); var errors = new List <string>(); var warnings = new List <string>(); var sdkLogger = new NuGetSdkLogger(mockLogger, warnings, errors); action(sdkLogger); if (expectedMessageImportance.HasValue) { var item = mockLogger.LoggedMessages.FirstOrDefault(); item.Should().NotBeNull(); item.Key.Should().Be(expectedMessage); item.Value.Should().Be(expectedMessageImportance.Value); } else { mockLogger.LoggedMessages.Should().BeEmpty(); } if (isWarning) { warnings.Should().ContainSingle(expectedMessage); } else { warnings.Should().BeEmpty(); } if (isError) { errors.Should().ContainSingle(); errors.First().Should().Be(expectedMessage); } else { errors.Should().BeEmpty(); } }