Skip to content

Commit

Permalink
chore: replace moq with lightmock
Browse files Browse the repository at this point in the history
  • Loading branch information
wlsnmrk committed Jan 21, 2025
1 parent 24fd0b7 commit 578ffcc
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 51 deletions.
3 changes: 2 additions & 1 deletion Chickensoft.Log.Tests/Chickensoft.Log.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="LightMock.Generator" Version="1.2.2" />
<PackageReference Include="LightMoq" Version="0.1.0" />
<PackageReference Include="Shouldly" Version="4.2.1" />
<PackageReference Include="xunit" Version="2.5.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
Expand Down
27 changes: 14 additions & 13 deletions Chickensoft.Log.Tests/test/src/ConsoleLogTest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
namespace Chickensoft.Log.Tests;

using Moq;
using LightMock;
using LightMock.Generator;
using Shouldly;

public class ConsoleLogTest {
Expand All @@ -18,29 +19,29 @@ public void PrintsMessage() {
var mockWriter = new Mock<ConsoleLog.IWriter>();
var log = new ConsoleLog(nameof(ConsoleLogTest), mockWriter.Object);
log.Print(_testMsg);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteMessage($"{nameof(ConsoleLogTest)}: {_testMsg}"),
Times.Once());
Invoked.Once);
}

[Fact]
public void PrintsError() {
var mockWriter = new Mock<ConsoleLog.IWriter>();
var log = new ConsoleLog(nameof(ConsoleLogTest), mockWriter.Object);
log.Err(_testMsg);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteError($"{nameof(ConsoleLogTest)}: {_testMsg}"),
Times.Once());
Invoked.Once);
}

[Fact]
public void PrintsWarning() {
var mockWriter = new Mock<ConsoleLog.IWriter>();
var log = new ConsoleLog(nameof(ConsoleLogTest), mockWriter.Object);
log.Warn(_testMsg);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteWarning($"WARNING in {nameof(ConsoleLogTest)}: {_testMsg}"),
Times.Once());
Invoked.Once);
}

[Fact]
Expand All @@ -49,12 +50,12 @@ public void PrintsException() {
var log = new ConsoleLog(nameof(ConsoleLogTest), mockWriter.Object);
var e = new TestException(_testMsg);
log.Print(e);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteError($"{nameof(ConsoleLogTest)}: An error occurred."),
Times.Once());
mockWriter.Verify(writer =>
Invoked.Once);
mockWriter.Assert(writer =>
writer.WriteError($"{nameof(ConsoleLogTest)}: {e}"),
Times.Once());
Invoked.Once);
}

[Fact]
Expand All @@ -63,9 +64,9 @@ public void PrintsStackTrace() {
var log = new ConsoleLog(nameof(ConsoleLogTest), mockWriter.Object);
var st = new FakeStackTrace("File.cs", "ClassName", "MethodName");
log.Print(st);
mockWriter.Verify(static writer =>
mockWriter.Assert(static writer =>
writer.WriteError($"{nameof(ConsoleLogTest)}: ClassName.MethodName in File.cs(1,2)"),
Times.Once()
Invoked.Once
);
}
}
27 changes: 14 additions & 13 deletions Chickensoft.Log.Tests/test/src/FileLogTest.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
namespace Chickensoft.Log.Tests;

using Chickensoft.Log;
using Moq;
using LightMock;
using LightMock.Generator;
using Shouldly;

public class FileLogTest {
Expand All @@ -19,29 +20,29 @@ public void PrintsMessage() {
var mockWriter = new Mock<FileLog.IWriter>();
var log = new FileLog(nameof(FileLogTest), mockWriter.Object);
log.Print(_testMsg);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteMessage($"{nameof(FileLogTest)}: {_testMsg}"),
Times.Once());
Invoked.Once);
}

[Fact]
public void PrintsError() {
var mockWriter = new Mock<FileLog.IWriter>();
var log = new FileLog(nameof(FileLogTest), mockWriter.Object);
log.Err(_testMsg);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteError($"ERROR in {nameof(FileLogTest)}: {_testMsg}"),
Times.Once());
Invoked.Once);
}

[Fact]
public void PrintsWarning() {
var mockWriter = new Mock<FileLog.IWriter>();
var log = new FileLog(nameof(FileLogTest), mockWriter.Object);
log.Warn(_testMsg);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteWarning($"WARNING in {nameof(FileLogTest)}: {_testMsg}"),
Times.Once());
Invoked.Once);
}

[Fact]
Expand All @@ -50,12 +51,12 @@ public void PrintsException() {
var log = new FileLog(nameof(FileLogTest), mockWriter.Object);
var e = new TestException(_testMsg);
log.Print(e);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteError($"ERROR in {nameof(FileLogTest)}: An error occurred."),
Times.Once());
mockWriter.Verify(writer =>
Invoked.Once);
mockWriter.Assert(writer =>
writer.WriteError($"ERROR in {nameof(FileLogTest)}: {e}"),
Times.Once());
Invoked.Once);
}

[Fact]
Expand All @@ -64,9 +65,9 @@ public void PrintsStackTrace() {
var log = new FileLog(nameof(FileLogTest), mockWriter.Object);
var st = new FakeStackTrace("File.cs", "ClassName", "MethodName");
log.Print(st);
mockWriter.Verify(static writer =>
mockWriter.Assert(static writer =>
writer.WriteError($"ERROR in {nameof(FileLogTest)}: ClassName.MethodName in File.cs(1,2)"),
Times.Once()
Invoked.Once
);
}
}
26 changes: 15 additions & 11 deletions Chickensoft.Log.Tests/test/src/MultiLogTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,13 @@ namespace Chickensoft.Log.Tests;

using System.Collections.Generic;
using System.Linq;
using Moq;
using LightMock;
using LightMock.Generator;
using Shouldly;

[System.Diagnostics.CodeAnalysis.SuppressMessage("Style",
"IDE0090:new expression can be simplified",
Justification = "Need an explicit 'new Mock<ILog>' for LightMock")]
public class MultiLogTest {
private readonly string _testMsg = "A test message";

Expand All @@ -16,58 +20,58 @@ public void Initializes() {

[Fact]
public void PrintsMessage() {
var mockLogs = new List<Mock<ILog>> { new(), new() };
var mockLogs = new List<Mock<ILog>> { new Mock<ILog>(), new Mock<ILog>() };
var logs = (from ml in mockLogs select ml.Object).ToList();
var log = new MultiLog(logs);
log.Print(_testMsg);
foreach (var ml in mockLogs) {
ml.Verify(log => log.Print(_testMsg), Times.Once());
ml.Assert(log => log.Print(_testMsg), Invoked.Once);
}
}

[Fact]
public void PrintsError() {
var mockLogs = new List<Mock<ILog>> { new(), new() };
var mockLogs = new List<Mock<ILog>> { new Mock<ILog>(), new Mock<ILog>() };
var logs = (from ml in mockLogs select ml.Object).ToList();
var log = new MultiLog(logs);
log.Err(_testMsg);
foreach (var ml in mockLogs) {
ml.Verify(log => log.Err(_testMsg), Times.Once());
ml.Assert(log => log.Err(_testMsg), Invoked.Once);
}
}

[Fact]
public void PrintsWarning() {
var mockLogs = new List<Mock<ILog>> { new(), new() };
var mockLogs = new List<Mock<ILog>> { new Mock<ILog>(), new Mock<ILog>() };
var logs = (from ml in mockLogs select ml.Object).ToList();
var log = new MultiLog(logs);
log.Warn(_testMsg);
foreach (var ml in mockLogs) {
ml.Verify(log => log.Warn(_testMsg), Times.Once());
ml.Assert(log => log.Warn(_testMsg), Invoked.Once);
}
}

[Fact]
public void PrintsException() {
var mockLogs = new List<Mock<ILog>> { new(), new() };
var mockLogs = new List<Mock<ILog>> { new Mock<ILog>(), new Mock<ILog>() };
var logs = (from ml in mockLogs select ml.Object).ToList();
var log = new MultiLog(logs);
var e = new TestException(_testMsg);
log.Print(e);
foreach (var ml in mockLogs) {
ml.Verify(log => log.Print(e), Times.Once());
ml.Assert(log => log.Print(e), Invoked.Once);
}
}

[Fact]
public void PrintsStackTrace() {
var mockLogs = new List<Mock<ILog>> { new(), new() };
var mockLogs = new List<Mock<ILog>> { new Mock<ILog>(), new Mock<ILog>() };
var logs = (from ml in mockLogs select ml.Object).ToList();
var log = new MultiLog(logs);
var st = new FakeStackTrace("File.cs", "ClassName", "MethodName");
log.Print(st);
foreach (var ml in mockLogs) {
ml.Verify(log => log.Print(st), Times.Once());
ml.Assert(log => log.Print(st), Invoked.Once);
}
}
}
27 changes: 14 additions & 13 deletions Chickensoft.Log.Tests/test/src/TraceLogTest.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
namespace Chickensoft.Log.Tests;

using Moq;
using LightMock;
using LightMock.Generator;
using Shouldly;

public class TraceLogTest {
Expand All @@ -18,29 +19,29 @@ public void PrintsMessage() {
var mockWriter = new Mock<TraceLog.IWriter>();
var log = new TraceLog(nameof(TraceLogTest), mockWriter.Object);
log.Print(_testMsg);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteMessage($"{nameof(TraceLogTest)}: {_testMsg}"),
Times.Once());
Invoked.Once);
}

[Fact]
public void PrintsError() {
var mockWriter = new Mock<TraceLog.IWriter>();
var log = new TraceLog(nameof(TraceLogTest), mockWriter.Object);
log.Err(_testMsg);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteError($"{nameof(TraceLogTest)}: {_testMsg}"),
Times.Once());
Invoked.Once);
}

[Fact]
public void PrintsWarning() {
var mockWriter = new Mock<TraceLog.IWriter>();
var log = new TraceLog(nameof(TraceLogTest), mockWriter.Object);
log.Warn(_testMsg);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteWarning($"WARNING in {nameof(TraceLogTest)}: {_testMsg}"),
Times.Once());
Invoked.Once);
}

[Fact]
Expand All @@ -49,12 +50,12 @@ public void PrintsException() {
var log = new TraceLog(nameof(TraceLogTest), mockWriter.Object);
var e = new TestException(_testMsg);
log.Print(e);
mockWriter.Verify(writer =>
mockWriter.Assert(writer =>
writer.WriteError($"{nameof(TraceLogTest)}: An error occurred."),
Times.Once());
mockWriter.Verify(writer =>
Invoked.Once);
mockWriter.Assert(writer =>
writer.WriteError($"{nameof(TraceLogTest)}: {e}"),
Times.Once());
Invoked.Once);
}

[Fact]
Expand All @@ -63,9 +64,9 @@ public void PrintsStackTrace() {
var log = new TraceLog(nameof(TraceLogTest), mockWriter.Object);
var st = new FakeStackTrace("File.cs", "ClassName", "MethodName");
log.Print(st);
mockWriter.Verify(static writer =>
mockWriter.Assert(static writer =>
writer.WriteError($"{nameof(TraceLogTest)}: ClassName.MethodName in File.cs(1,2)"),
Times.Once()
Invoked.Once
);
}
}

0 comments on commit 578ffcc

Please sign in to comment.