Skip to content

Commit fc74f1f

Browse files
committed
Initialize LogMessage from old LogMessage
with new message only uses LogType from old message for now but more coming
1 parent d4d0fb7 commit fc74f1f

3 files changed

Lines changed: 42 additions & 1 deletion

File tree

ModuleManager/Logging/LogMessage.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ public LogMessage(LogType logType, string message)
1616
Message = message ?? throw new ArgumentNullException(nameof(message));
1717
}
1818

19+
public LogMessage(ILogMessage logMessage, string newMessage)
20+
{
21+
if (logMessage == null) throw new ArgumentNullException(nameof(logMessage));
22+
LogType = logMessage.LogType;
23+
Message = newMessage ?? throw new ArgumentNullException(nameof(newMessage));
24+
}
25+
1926
public string ToLogString()
2027
{
2128
string prefix;

ModuleManager/Logging/ModLogger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public ModLogger(string prefix, IBasicLogger logger)
1717
public void Log(ILogMessage message)
1818
{
1919
if (message == null) throw new ArgumentNullException(nameof(message));
20-
logger.Log(new LogMessage(message.LogType, prefix + message.Message));
20+
logger.Log(new LogMessage(message, prefix + message.Message));
2121
}
2222
}
2323
}

ModuleManagerTests/Logging/LogMessageTest.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using Xunit;
3+
using NSubstitute;
34
using UnityEngine;
45
using ModuleManager.Logging;
56

@@ -18,6 +19,39 @@ public void TestConstructor__NullMessage()
1819
Assert.Equal("message", ex.ParamName);
1920
}
2021

22+
[Fact]
23+
public void TestConstructor__FromOtherMessage()
24+
{
25+
ILogMessage logMessage = Substitute.For<ILogMessage>();
26+
logMessage.LogType.Returns(LogType.Log);
27+
logMessage.Message.Returns("the old message");
28+
LogMessage newLogMessage = new LogMessage(logMessage, "a new message");
29+
Assert.Equal(LogType.Log, newLogMessage.LogType);
30+
Assert.Equal("a new message", newLogMessage.Message);
31+
}
32+
33+
[Fact]
34+
public void TestConstructor__FromOtherMessage__LogMessageNull()
35+
{
36+
ArgumentNullException ex = Assert.Throws<ArgumentNullException>(delegate
37+
{
38+
new LogMessage(null, "a new message");
39+
});
40+
41+
Assert.Equal("logMessage", ex.ParamName);
42+
}
43+
44+
[Fact]
45+
public void TestConstructor__FromOtherMessage__NewMessageNull()
46+
{
47+
ArgumentNullException ex = Assert.Throws<ArgumentNullException>(delegate
48+
{
49+
new LogMessage(Substitute.For<ILogMessage>(), null);
50+
});
51+
52+
Assert.Equal("newMessage", ex.ParamName);
53+
}
54+
2155
[Fact]
2256
public void TestToLogMessage__Info()
2357
{

0 commit comments

Comments
 (0)