public void When_Structured_Parameters_Are_Passed_They_Are_Replaced() { var options = CreateLoggerConfigMonitor(); var moqInfo = new Mock <Action <string> >(); var provider = new Mock <LoRaConsoleLoggerProvider>(options); var logger = new TestLoRaConsoleLogger(moqInfo.Object, null, provider.Object); logger.LogInformation("{Id}", 1); moqInfo.Verify(x => x.Invoke(It.Is <string>(x => x == "1")), Times.Once); }
public void If_Log_Level_Is_Higher_Log_Is_Written(LogLevel configuredLevel, LogLevel entryLevel, bool shouldLog) { var options = CreateLoggerConfigMonitor(); options.CurrentValue.LogLevel = configuredLevel; var moqInfo = new Mock <Action <string> >(); var provider = new Mock <LoRaConsoleLoggerProvider>(options); var logger = new TestLoRaConsoleLogger(moqInfo.Object, null, provider.Object); logger.Log(entryLevel, "test"); moqInfo.Verify(x => x.Invoke(It.IsAny <string>()), shouldLog ? Times.Once : Times.Never); }
public void When_Error_Is_Logged_Target_Is_StdErr() { var options = CreateLoggerConfigMonitor(); var moqErr = new Mock <Action <string> >(); var provider = new Mock <LoRaConsoleLoggerProvider>(options); var logger = new TestLoRaConsoleLogger(null, moqErr.Object, provider.Object); logger.LogError("Test"); moqErr.Verify(x => x.Invoke(It.IsAny <string>()), Times.Once); }
public void When_EventId_Changes_Output_Is_Written_When_Matching_Or_Omitted(int configuredEventId, int loggedEventId, bool expectsOutput) { var options = CreateLoggerConfigMonitor(); options.CurrentValue.EventId = configuredEventId; var moqInfo = new Mock <Action <string> >(); var provider = new Mock <LoRaConsoleLoggerProvider>(options); var logger = new TestLoRaConsoleLogger(moqInfo.Object, null, provider.Object); logger.LogInformation(loggedEventId, "Test"); moqInfo.Verify(x => x.Invoke(It.IsAny <string>()), expectsOutput ? Times.Once : Times.Never); }
public void When_Multiple_Scopes_Set_DevEUI_Preferred_Over_DevAddr_Preferred_Over_StationEUI(string devEuiScope, string devAddrScope, int?stationEuiScope, string expected) { // arrange var options = CreateLoggerConfigMonitor(); var moqInfo = new Mock <Action <string> >(); var provider = new Mock <LoRaConsoleLoggerProvider>(options); var logger = new TestLoRaConsoleLogger(moqInfo.Object, null, provider.Object); // act using var euiScope = devEuiScope is { } someDevEuiScope?logger.BeginDeviceScope(DevEui.Parse(someDevEuiScope)) : default; using var addrScope = devAddrScope is null ? default : logger.BeginDeviceAddressScope(devAddrScope); using var statScope = stationEuiScope is { } s?logger.BeginEuiScope(new StationEui ((ulong)s)): default; logger.LogInformation("foo"); // assert moqInfo.Verify(x => x.Invoke(expected), Times.Once); }
public void When_Message_Already_Prefixed_Scope_Should_Not_Be_Added() { var options = CreateLoggerConfigMonitor(); options.CurrentValue.UseScopes = true; var moqInfo = new Mock <Action <string> >(); var provider = new Mock <LoRaConsoleLoggerProvider>(options); var logger = new TestLoRaConsoleLogger(moqInfo.Object, null, provider.Object); var devEUI = new DevEui(0x12345678); var message = devEUI + " test"; using var scope = logger.BeginDeviceScope(devEUI); logger.LogInformation(message); moqInfo.Verify(x => x.Invoke(It.Is <string>(x => x == message)), Times.Once); }
public void DevAddr_Scope_Set_In_Message() { // arrange var options = CreateLoggerConfigMonitor(); var moqInfo = new Mock <Action <string> >(); var provider = new Mock <LoRaConsoleLoggerProvider>(options); var logger = new TestLoRaConsoleLogger(moqInfo.Object, null, provider.Object); const string devAddr = "12345678ADDR"; const string message = "foo"; // act using var scope = logger.BeginDeviceAddressScope(devAddr); logger.LogInformation(message); // assert var expected = string.Concat(devAddr, " ", message); moqInfo.Verify(x => x.Invoke(expected), Times.Once); }
public void When_Scope_Settings_Change_DevEUI_Is_Handled_In_The_Message(bool useScopes) { var options = CreateLoggerConfigMonitor(); options.CurrentValue.UseScopes = useScopes; var moqInfo = new Mock <Action <string> >(); var provider = new Mock <LoRaConsoleLoggerProvider>(options); var logger = new TestLoRaConsoleLogger(moqInfo.Object, null, provider.Object); var devEUI = new DevEui(0x12345678); const string message = "test"; using var scope = logger.BeginDeviceScope(devEUI); logger.LogInformation(message); var expected = useScopes ? devEUI + " " + message : message; moqInfo.Verify(x => x.Invoke(It.Is <string>(x => x == expected)), Times.Once); }