Files
Christian e43e7f8e36 Use latest language features (#2176)
* Make use of language features line AsyncDispose, init etc.

* Fix build errors

* Improve Unit Tests

* Improve Unit Tests

* Improve Unit Tests

* Update samples

* Remove obsolete benchmarks

* Code cleanup

* Improve unit tests

* Improve Unit Tests

* Fix Unit Tests

* Improve Unit Tests

* Improve Unit Tests

* Restore unit tests

* Exclude load tests from unit tests
2025-08-30 10:52:59 +02:00

66 lines
2.1 KiB
C#

// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using MQTTnet.Diagnostics.Logger;
namespace MQTTnet.Tests.Diagnostics;
// ReSharper disable InconsistentNaming
[TestClass]
public sealed class Logger_Tests : BaseTestClass
{
[TestMethod]
public void Log_Without_Source()
{
var logger = new MqttNetEventLogger();
MqttNetLogMessage logMessage = null;
logger.LogMessagePublished += (_, e) => { logMessage = e.LogMessage; };
logger.Publish(MqttNetLogLevel.Info, "SOURCE", "MESSAGE", ["ABC"], new InvalidOperationException());
Assert.AreEqual(MqttNetLogLevel.Info, logMessage.Level);
Assert.AreEqual("SOURCE", logMessage.Source);
Assert.AreEqual("MESSAGE", logMessage.Message);
Assert.AreEqual("InvalidOperationException", logMessage.Exception.GetType().Name);
}
[TestMethod]
public void Root_Log_Messages()
{
var logger = new MqttNetEventLogger();
var childLogger = logger.WithSource("Source1");
var logMessagesCount = 0;
logger.LogMessagePublished += (_, _) => { logMessagesCount++; };
childLogger.Verbose("Verbose");
childLogger.Info("Info");
childLogger.Warning((Exception)null, "Warning");
childLogger.Error(null, "Error");
Assert.AreEqual(4, logMessagesCount);
}
[TestMethod]
public void Use_Custom_Log_Id()
{
var logger = new MqttNetEventLogger("logId");
var childLogger = logger.WithSource("Source1");
logger.LogMessagePublished += (_, e) =>
{
Assert.AreEqual("logId", e.LogMessage.LogId);
Assert.AreEqual("Source1", e.LogMessage.Source);
};
childLogger.Verbose("Verbose");
childLogger.Info("Info");
childLogger.Warning((Exception)null, "Warning");
childLogger.Error(null, "Error");
}
}