Skip to content

Commit

Permalink
Initialize LogMessage from old LogMessage
Browse files Browse the repository at this point in the history
with new message

only uses LogType from old message for now but more coming
  • Loading branch information
blowfishpro committed Apr 30, 2019
1 parent d4d0fb7 commit fc74f1f
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 1 deletion.
7 changes: 7 additions & 0 deletions ModuleManager/Logging/LogMessage.cs
Expand Up @@ -16,6 +16,13 @@ public LogMessage(LogType logType, string message)
Message = message ?? throw new ArgumentNullException(nameof(message));
}

public LogMessage(ILogMessage logMessage, string newMessage)
{
if (logMessage == null) throw new ArgumentNullException(nameof(logMessage));
LogType = logMessage.LogType;
Message = newMessage ?? throw new ArgumentNullException(nameof(newMessage));
}

public string ToLogString()
{
string prefix;
Expand Down
2 changes: 1 addition & 1 deletion ModuleManager/Logging/ModLogger.cs
Expand Up @@ -17,7 +17,7 @@ public ModLogger(string prefix, IBasicLogger logger)
public void Log(ILogMessage message)
{
if (message == null) throw new ArgumentNullException(nameof(message));
logger.Log(new LogMessage(message.LogType, prefix + message.Message));
logger.Log(new LogMessage(message, prefix + message.Message));
}
}
}
34 changes: 34 additions & 0 deletions ModuleManagerTests/Logging/LogMessageTest.cs
@@ -1,5 +1,6 @@
using System;
using Xunit;
using NSubstitute;
using UnityEngine;
using ModuleManager.Logging;

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

[Fact]
public void TestConstructor__FromOtherMessage()
{
ILogMessage logMessage = Substitute.For<ILogMessage>();
logMessage.LogType.Returns(LogType.Log);
logMessage.Message.Returns("the old message");
LogMessage newLogMessage = new LogMessage(logMessage, "a new message");
Assert.Equal(LogType.Log, newLogMessage.LogType);
Assert.Equal("a new message", newLogMessage.Message);
}

[Fact]
public void TestConstructor__FromOtherMessage__LogMessageNull()
{
ArgumentNullException ex = Assert.Throws<ArgumentNullException>(delegate
{
new LogMessage(null, "a new message");
});

Assert.Equal("logMessage", ex.ParamName);
}

[Fact]
public void TestConstructor__FromOtherMessage__NewMessageNull()
{
ArgumentNullException ex = Assert.Throws<ArgumentNullException>(delegate
{
new LogMessage(Substitute.For<ILogMessage>(), null);
});

Assert.Equal("newMessage", ex.ParamName);
}

[Fact]
public void TestToLogMessage__Info()
{
Expand Down

0 comments on commit fc74f1f

Please sign in to comment.