// Copyright (c) Umbraco. // See LICENSE for more details. using System; using Microsoft.Extensions.Logging; using Moq; namespace Umbraco.Cms.Tests.Common.TestHelpers; public static class LogTestHelper { public static Mock> VerifyLogError( this Mock> logger, Exception exception, string expectedMessage, Times? times = null) => VerifyLogging(logger, exception, expectedMessage, LogLevel.Error, times); private static Mock> VerifyLogging( this Mock> logger, Exception exception, string expectedMessage, LogLevel expectedLogLevel = LogLevel.Debug, Times? times = null) { times ??= Times.Once(); Func state = (v, t) => string.Compare(v.ToString(), expectedMessage, StringComparison.Ordinal) == 0; logger.Verify( x => x.Log( It.Is(l => l == expectedLogLevel), It.IsAny(), It.Is((v, t) => state(v, t)), exception, It.Is>((v, t) => true)), (Times)times); return logger; } }