Skip to content

Commit 7790b7b

Browse files
committed
Moq -> NSubstitute
1 parent 5788b50 commit 7790b7b

19 files changed

+149
-141
lines changed

src/ReportGenerator.Core.Test/Issues/Issue235_Cobertura.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System.Linq;
22
using System.Xml.Linq;
3-
using Moq;
3+
using NSubstitute;
44
using Palmmedia.ReportGenerator.Core.Parser;
55
using Palmmedia.ReportGenerator.Core.Parser.Filtering;
66
using Xunit;
@@ -30,12 +30,12 @@ public class Issue235_Cobertura
3030
[Fact]
3131
public void NestedClassWithoutParentIsPresent()
3232
{
33-
var filterMock = new Mock<IFilter>();
34-
filterMock.Setup(f => f.IsElementIncludedInReport(It.IsAny<string>())).Returns(true);
33+
var filter = Substitute.For<IFilter>();
34+
filter.IsElementIncludedInReport(Arg.Any<string>()).Returns(true);
3535

3636
var report = XDocument.Parse(Report);
3737

38-
var parserResult = new CoberturaParser(filterMock.Object, filterMock.Object, filterMock.Object).Parse(report.Root);
38+
var parserResult = new CoberturaParser(filter, filter, filter).Parse(report.Root);
3939

4040
Assert.Equal("OutwardPaymentDocumentProcessing.HttpStart", parserResult.Assemblies.First().Classes.First().Name);
4141
}

src/ReportGenerator.Core.Test/Parser/Analysis/CodeFileTest.cs

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System.Collections.Generic;
22
using System.Linq;
3-
using Moq;
3+
using NSubstitute;
44
using Palmmedia.ReportGenerator.Core.Parser.Analysis;
55
using Palmmedia.ReportGenerator.Core.Parser.FileReading;
66
using Xunit;
@@ -267,24 +267,24 @@ public void AnalyzeFile_NonExistingFile_AnalysisIsReturned()
267267
[Fact]
268268
public void AnalyzeFile_AdditionFileReaderNoError_RegularFileReaderIgnored()
269269
{
270-
var additionalFileReaderMock = new Mock<IFileReader>();
271-
string error = null;
272-
additionalFileReaderMock.Setup(f => f.LoadFile(It.IsAny<string>(), out error))
270+
var additionalFileReader = Substitute.For<IFileReader>();
271+
string errorArg = Arg.Any<string>();
272+
additionalFileReader.LoadFile(Arg.Any<string>(), out errorArg)
273273
.Returns(new[] { "Test" });
274274

275-
var fileReaderMock = new Mock<IFileReader>();
275+
var fileReader = Substitute.For<IFileReader>();
276276

277-
var sut = new CodeFile("C:\\temp\\Other.cs", new int[] { -2, -1, 0, 1 }, new LineVisitStatus[] { LineVisitStatus.NotCoverable, LineVisitStatus.NotCoverable, LineVisitStatus.NotCovered, LineVisitStatus.Covered }, additionalFileReaderMock.Object);
277+
var sut = new CodeFile("C:\\temp\\Other.cs", new int[] { -2, -1, 0, 1 }, new LineVisitStatus[] { LineVisitStatus.NotCoverable, LineVisitStatus.NotCoverable, LineVisitStatus.NotCovered, LineVisitStatus.Covered }, additionalFileReader);
278278

279279
Assert.Null(sut.TotalLines);
280280

281-
var fileAnalysis = sut.AnalyzeFile(fileReaderMock.Object);
281+
var fileAnalysis = sut.AnalyzeFile(fileReader);
282282

283283
Assert.NotNull(fileAnalysis);
284284
Assert.Null(fileAnalysis.Error);
285285

286-
additionalFileReaderMock.Verify(f => f.LoadFile(It.IsAny<string>(), out error), Times.Once);
287-
fileReaderMock.Verify(f => f.LoadFile(It.IsAny<string>(), out error), Times.Never);
286+
additionalFileReader.Received(1).LoadFile(Arg.Any<string>(), out errorArg);
287+
fileReader.DidNotReceive().LoadFile(Arg.Any<string>(), out errorArg);
288288
}
289289

290290
/// <summary>
@@ -293,29 +293,38 @@ public void AnalyzeFile_AdditionFileReaderNoError_RegularFileReaderIgnored()
293293
[Fact]
294294
public void AnalyzeFile_AdditionFileReaderReturnsError_RegularFileReaderUsed()
295295
{
296-
var additionalFileReaderMock = new Mock<IFileReader>();
297-
string error = "Some error";
298-
additionalFileReaderMock.Setup(f => f.LoadFile(It.IsAny<string>(), out error))
299-
.Returns((string[])null);
300-
301-
var fileReaderMock = new Mock<IFileReader>();
302-
fileReaderMock.Setup(f => f.LoadFile(It.IsAny<string>(), out error))
303-
.Returns(new[] { "Test" });
304-
305-
var sut = new CodeFile("C:\\temp\\Other.cs", new int[] { -2, -1, 0, 1 }, new LineVisitStatus[] { LineVisitStatus.NotCoverable, LineVisitStatus.NotCoverable, LineVisitStatus.NotCovered, LineVisitStatus.Covered }, additionalFileReaderMock.Object);
296+
var additionalFileReader = Substitute.For<IFileReader>();
297+
string errorArg = Arg.Any<string>();
298+
string errorOut = "Some error";
299+
additionalFileReader.LoadFile(Arg.Any<string>(), out errorArg)
300+
.Returns(x =>
301+
{
302+
x[1] = errorOut;
303+
return null;
304+
});
305+
306+
var fileReader = Substitute.For<IFileReader>();
307+
fileReader.LoadFile(Arg.Any<string>(), out errorArg)
308+
.Returns(x =>
309+
{
310+
x[1] = errorOut;
311+
return new[] { "Test" };
312+
});
313+
314+
var sut = new CodeFile("C:\\temp\\Other.cs", new int[] { -2, -1, 0, 1 }, new LineVisitStatus[] { LineVisitStatus.NotCoverable, LineVisitStatus.NotCoverable, LineVisitStatus.NotCovered, LineVisitStatus.Covered }, additionalFileReader);
306315

307316
Assert.Null(sut.TotalLines);
308317

309-
var fileAnalysis = sut.AnalyzeFile(fileReaderMock.Object);
318+
var fileAnalysis = sut.AnalyzeFile(fileReader);
310319

311320
Assert.NotNull(fileAnalysis);
312321
Assert.NotNull(fileAnalysis.Error);
313322
Assert.Equal(fileAnalysis.Path, fileAnalysis.Path);
314323
Assert.Equal(4, sut.TotalLines);
315324
Assert.Equal(4, fileAnalysis.Lines.Count());
316325

317-
additionalFileReaderMock.Verify(f => f.LoadFile(It.IsAny<string>(), out error), Times.Once);
318-
fileReaderMock.Verify(f => f.LoadFile(It.IsAny<string>(), out error), Times.Once);
326+
additionalFileReader.Received(1).LoadFile(Arg.Any<string>(), out errorArg);
327+
fileReader.Received(1).LoadFile(Arg.Any<string>(), out errorArg);
319328
}
320329

321330
/// <summary>

src/ReportGenerator.Core.Test/Parser/CloverParserTest.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.IO;
33
using System.Linq;
44
using System.Xml.Linq;
5-
using Moq;
5+
using NSubstitute;
66
using Palmmedia.ReportGenerator.Core.Parser;
77
using Palmmedia.ReportGenerator.Core.Parser.Analysis;
88
using Palmmedia.ReportGenerator.Core.Parser.FileReading;
@@ -25,12 +25,12 @@ public class CloverParserTest
2525

2626
public CloverParserTest()
2727
{
28-
var filterMock = new Mock<IFilter>();
29-
filterMock.Setup(f => f.IsElementIncludedInReport(It.IsAny<string>())).Returns(true);
28+
var filter = Substitute.For<IFilter>();
29+
filter.IsElementIncludedInReport(Arg.Any<string>()).Returns(true);
3030

3131
var report = XDocument.Load(FilePath1);
3232
new CloverReportPreprocessor(new[] { "C:\\temp" }).Execute(report);
33-
this.parserResult = new CloverParser(filterMock.Object, filterMock.Object, filterMock.Object).Parse(report);
33+
this.parserResult = new CloverParser(filter, filter, filter).Parse(report);
3434
}
3535

3636
/// <summary>

src/ReportGenerator.Core.Test/Parser/CoberturaParserTest.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.IO;
33
using System.Linq;
44
using System.Xml.Linq;
5-
using Moq;
5+
using NSubstitute;
66
using Palmmedia.ReportGenerator.Core.Parser;
77
using Palmmedia.ReportGenerator.Core.Parser.Analysis;
88
using Palmmedia.ReportGenerator.Core.Parser.FileReading;
@@ -19,7 +19,7 @@ namespace Palmmedia.ReportGenerator.Core.Test.Parser
1919
[Collection("FileManager")]
2020
public class CoberturaParserTest
2121
{
22-
private static readonly string FilePathJavaReport = Path.Combine(FileManager.GetJavaReportDirectory(), "Cobertura2.1.1.xml");
22+
private static readonly string FilePathJavaReport = Path.Combine(FileManager.GetJavaReportDirectory(), "Cobertura2.1.1.xml");
2323
private static readonly string FilePathCSharpReport = Path.Combine(FileManager.GetCSharpReportDirectory(), "Cobertura_coverlet.xml");
2424

2525
private readonly ParserResult javaParserResult;
@@ -156,11 +156,11 @@ public void MethodMetricsTest()
156156
/// A test for MethodMetrics
157157
/// </summary>
158158
[Theory]
159-
[InlineData("Test", "Test.AbstractClass", "C:\\temp\\AbstractClass.cs", ".ctor()", 1, 1, 100, 100, 1)]
160-
[InlineData("Test", "Test.AbstractClass_SampleImpl1", "C:\\temp\\AbstractClass.cs", "Method1()", 3, 1, 0, 100, 2)]
161-
[InlineData("Test", "Test.PartialClass", "C:\\temp\\PartialClass.cs", "set_SomeProperty(System.Int32)", 4, 2, 66.66, 50, 2.15)]
162-
[InlineData("Test", "Test.Program", "C:\\temp\\Program.cs", "Main(System.String[])", 4, 1, 89.65, 100, 1.00)]
163-
[InlineData("Test", "Test.TestClass", "C:\\temp\\TestClass.cs", "SampleFunction()", 5, 4, 80, 50, 4.13)]
159+
[InlineData("Test", "Test.AbstractClass", "C:\\temp\\AbstractClass.cs", ".ctor()", 1, 1, 100, 100, 1)]
160+
[InlineData("Test", "Test.AbstractClass_SampleImpl1", "C:\\temp\\AbstractClass.cs", "Method1()", 3, 1, 0, 100, 2)]
161+
[InlineData("Test", "Test.PartialClass", "C:\\temp\\PartialClass.cs", "set_SomeProperty(System.Int32)", 4, 2, 66.66, 50, 2.15)]
162+
[InlineData("Test", "Test.Program", "C:\\temp\\Program.cs", "Main(System.String[])", 4, 1, 89.65, 100, 1.00)]
163+
[InlineData("Test", "Test.TestClass", "C:\\temp\\TestClass.cs", "SampleFunction()", 5, 4, 80, 50, 4.13)]
164164
public void MethodMetricsTest_2(string assemblyName, string className, string filePath, string methodName, int expectedMethodMetrics, double expectedComplexity, double expectedLineCoverage, double expectedBranchCoverage, double expectedCrapScore)
165165
{
166166
var methodMetrics = csharpParserResult
@@ -219,12 +219,12 @@ private static FileAnalysis GetFileAnalysis(IEnumerable<Assembly> assemblies, st
219219

220220
private static ParserResult ParseReport(string filePath)
221221
{
222-
var filterMock = new Mock<IFilter>();
223-
filterMock.Setup(f => f.IsElementIncludedInReport(It.IsAny<string>())).Returns(true);
222+
var filter = Substitute.For<IFilter>();
223+
filter.IsElementIncludedInReport(Arg.Any<string>()).Returns(true);
224224

225225
var report = XDocument.Load(filePath);
226226
new CoberturaReportPreprocessor().Execute(report);
227-
return new CoberturaParser(filterMock.Object, filterMock.Object, filterMock.Object).Parse(report.Root);
227+
return new CoberturaParser(filter, filter, filter).Parse(report.Root);
228228
}
229229
}
230230
}

0 commit comments

Comments
 (0)