Replace Moq with NSubstitute (#51)

This commit is contained in:
2023-08-09 16:11:11 +02:00
committed by GitHub
parent fe049d4c00
commit b7244b2bdb
13 changed files with 101 additions and 132 deletions
@@ -1,6 +1,6 @@
using FluentAssertions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using NSubstitute;
using System;
using System.Configuration;
@@ -10,8 +10,8 @@ namespace SystemExtensions.DependencyInjection.Tests.Configuration;
public class LiveOptionsResolverTests
{
private readonly LiveOptionsResolver liveOptionsResolver = new();
private readonly Mock<Slim.IServiceProvider> serviceProviderMock = new();
private readonly Mock<IOptionsManager> optionsManagerMock = new();
private readonly Slim.IServiceProvider serviceProviderMock = Substitute.For<Slim.IServiceProvider>();
private readonly IOptionsManager optionsManagerMock = Substitute.For<IOptionsManager>();
[TestMethod]
public void CanResolve_ILiveOptions_ReturnsTrue()
@@ -41,7 +41,7 @@ public class LiveOptionsResolverTests
{
this.SetupServiceProvider();
var liveOptions = this.liveOptionsResolver.Resolve(this.serviceProviderMock.Object, typeof(ILiveOptions<string>));
var liveOptions = this.liveOptionsResolver.Resolve(this.serviceProviderMock, typeof(ILiveOptions<string>));
liveOptions.Should().BeAssignableTo<ILiveOptions<string>>();
}
@@ -53,7 +53,7 @@ public class LiveOptionsResolverTests
Action action = new(() =>
{
this.liveOptionsResolver.Resolve(this.serviceProviderMock.Object, typeof(string));
this.liveOptionsResolver.Resolve(this.serviceProviderMock, typeof(string));
});
action.Should().Throw<Exception>();
@@ -61,8 +61,6 @@ public class LiveOptionsResolverTests
private void SetupServiceProvider()
{
this.serviceProviderMock
.Setup(u => u.GetService<IOptionsManager>())
.Returns(this.optionsManagerMock.Object);
this.serviceProviderMock.GetService<IOptionsManager>().Returns(this.optionsManagerMock);
}
}
@@ -1,6 +1,6 @@
using FluentAssertions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using NSubstitute;
using System;
using System.Configuration;
@@ -10,8 +10,8 @@ namespace SystemExtensions.DependencyInjection.Tests.Configuration;
public class LiveUpdateableOptionsResolverTests
{
private readonly LiveUpdateableOptionsResolver liveUpdateableOptionsResolver = new();
private readonly Mock<Slim.IServiceProvider> serviceProviderMock = new();
private readonly Mock<IOptionsManager> optionsManagerMock = new();
private readonly Slim.IServiceProvider serviceProviderMock = Substitute.For<Slim.IServiceProvider>();
private readonly IOptionsManager optionsManagerMock = Substitute.For<IOptionsManager>();
[TestMethod]
public void CanResolve_ILiveUpdateableOptions_ReturnsTrue()
@@ -41,7 +41,7 @@ public class LiveUpdateableOptionsResolverTests
{
this.SetupServiceProvider();
var liveOptions = this.liveUpdateableOptionsResolver.Resolve(this.serviceProviderMock.Object, typeof(ILiveUpdateableOptions<string>));
var liveOptions = this.liveUpdateableOptionsResolver.Resolve(this.serviceProviderMock, typeof(ILiveUpdateableOptions<string>));
liveOptions.Should().BeAssignableTo<ILiveUpdateableOptions<string>>();
}
@@ -53,7 +53,7 @@ public class LiveUpdateableOptionsResolverTests
Action action = new(() =>
{
this.liveUpdateableOptionsResolver.Resolve(this.serviceProviderMock.Object, typeof(string));
this.liveUpdateableOptionsResolver.Resolve(this.serviceProviderMock, typeof(string));
});
action.Should().Throw<Exception>();
@@ -61,8 +61,6 @@ public class LiveUpdateableOptionsResolverTests
private void SetupServiceProvider()
{
this.serviceProviderMock
.Setup(u => u.GetService<IOptionsManager>())
.Returns(this.optionsManagerMock.Object);
this.serviceProviderMock.GetService<IOptionsManager>().Returns(this.optionsManagerMock);
}
}
@@ -1,6 +1,6 @@
using FluentAssertions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using NSubstitute;
using System.Configuration;
namespace SystemExtensions.DependencyInjection.Tests.Configuration;
@@ -9,20 +9,18 @@ namespace SystemExtensions.DependencyInjection.Tests.Configuration;
public class LiveUpdateableOptionsWrapperTests
{
private LiveUpdateableOptionsWrapper<string> optionsWrapper;
private readonly Mock<IOptionsManager> optionsManagerMock = new();
private readonly IOptionsManager optionsManagerMock = Substitute.For<IOptionsManager>();
[TestInitialize]
public void TestInitialize()
{
this.optionsWrapper = new LiveUpdateableOptionsWrapper<string>(this.optionsManagerMock.Object);
this.optionsWrapper = new LiveUpdateableOptionsWrapper<string>(this.optionsManagerMock);
}
[TestMethod]
public void GetValue_ReturnsValue()
{
this.optionsManagerMock
.Setup(u => u.GetOptions<string>())
.Returns("hello");
this.optionsManagerMock.GetOptions<string>().Returns("hello");
var value = this.optionsWrapper.Value;
@@ -32,12 +30,8 @@ public class LiveUpdateableOptionsWrapperTests
[TestMethod]
public void UpdateOption_CallsOptionsManager()
{
this.optionsManagerMock
.Setup(u => u.UpdateOptions<string>(It.IsAny<string>()))
.Verifiable();
this.optionsWrapper.UpdateOption();
this.optionsManagerMock.Verify();
this.optionsManagerMock.ReceivedWithAnyArgs().UpdateOptions(Arg.Any<string>());
}
}
@@ -1,7 +1,7 @@
using FluentAssertions;
using Microsoft.Extensions.Options;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using NSubstitute;
using System;
using System.Configuration;
@@ -11,9 +11,9 @@ namespace SystemExtensions.DependencyInjection.Tests.Configuration;
public class OptionsResolverTests
{
private readonly OptionsResolver optionsResolver = new();
private readonly Mock<Slim.IServiceProvider> serviceProviderMock = new();
private readonly Slim.IServiceProvider serviceProviderMock = Substitute.For<Slim.IServiceProvider>();
public Mock<IOptionsManager> OptionsManagerMock { get; } = new();
public IOptionsManager OptionsManagerMock { get; } = Substitute.For<IOptionsManager>();
[TestMethod]
public void CanResolve_ILiveOptions_ReturnsTrue()
@@ -43,7 +43,7 @@ public class OptionsResolverTests
{
this.SetupServiceProvider();
var liveOptions = this.optionsResolver.Resolve(this.serviceProviderMock.Object, typeof(IOptions<string>));
var liveOptions = this.optionsResolver.Resolve(this.serviceProviderMock, typeof(IOptions<string>));
liveOptions.Should().BeAssignableTo<IOptions<string>>();
}
@@ -55,7 +55,7 @@ public class OptionsResolverTests
Action action = new(() =>
{
this.optionsResolver.Resolve(this.serviceProviderMock.Object, typeof(string));
this.optionsResolver.Resolve(this.serviceProviderMock, typeof(string));
});
action.Should().Throw<Exception>();
@@ -63,8 +63,6 @@ public class OptionsResolverTests
private void SetupServiceProvider()
{
this.serviceProviderMock
.Setup(u => u.GetService<IOptionsManager>())
.Returns(this.OptionsManagerMock.Object);
this.serviceProviderMock.GetService<IOptionsManager>().Returns(this.OptionsManagerMock);
}
}
@@ -1,6 +1,6 @@
using FluentAssertions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using NSubstitute;
using System;
using System.Configuration;
@@ -10,8 +10,8 @@ namespace SystemExtensions.DependencyInjection.Tests.Configuration;
public class UpdateableOptionsResolverTests
{
private readonly UpdateableOptionsResolver updateableOptionsResolver = new();
private readonly Mock<Slim.IServiceProvider> serviceProviderMock = new();
private readonly Mock<IOptionsManager> optionsManagerMock = new();
private readonly Slim.IServiceProvider serviceProviderMock = Substitute.For<Slim.IServiceProvider>();
private readonly IOptionsManager optionsManagerMock = Substitute.For<IOptionsManager>();
[TestMethod]
public void CanResolve_ILiveOptions_ReturnsTrue()
@@ -41,7 +41,7 @@ public class UpdateableOptionsResolverTests
{
this.SetupServiceProvider();
var liveOptions = this.updateableOptionsResolver.Resolve(this.serviceProviderMock.Object, typeof(IUpdateableOptions<string>));
var liveOptions = this.updateableOptionsResolver.Resolve(this.serviceProviderMock, typeof(IUpdateableOptions<string>));
liveOptions.Should().BeAssignableTo<IUpdateableOptions<string>>();
}
@@ -53,7 +53,7 @@ public class UpdateableOptionsResolverTests
Action action = new(() =>
{
this.updateableOptionsResolver.Resolve(this.serviceProviderMock.Object, typeof(string));
this.updateableOptionsResolver.Resolve(this.serviceProviderMock, typeof(string));
});
action.Should().Throw<Exception>();
@@ -61,8 +61,6 @@ public class UpdateableOptionsResolverTests
private void SetupServiceProvider()
{
this.serviceProviderMock
.Setup(u => u.GetService<IOptionsManager>())
.Returns(this.optionsManagerMock.Object);
this.serviceProviderMock.GetService<IOptionsManager>().Returns(this.optionsManagerMock);
}
}
@@ -1,6 +1,7 @@
using FluentAssertions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;
using NSubstitute;
using NSubstitute.ExceptionExtensions;
using System;
using System.Configuration;
using System.Extensions.Configuration;
@@ -13,20 +14,18 @@ public class UpdateableOptionsWrapperTests
private const string Value = "hello";
private UpdateableOptionsWrapper<string> optionsWrapper;
private readonly Mock<IOptionsManager> optionsManagerMock = new();
private readonly IOptionsManager optionsManagerMock = Substitute.For<IOptionsManager>();
[TestInitialize]
public void TestInitialize()
{
this.optionsWrapper = new UpdateableOptionsWrapper<string>(this.optionsManagerMock.Object, Value);
this.optionsWrapper = new UpdateableOptionsWrapper<string>(this.optionsManagerMock, Value);
}
[TestMethod]
public void GetValue_ReturnsValue()
{
this.optionsManagerMock
.Setup(u => u.GetOptions<string>())
.Throws<Exception>();
this.optionsManagerMock.GetOptions<string>().Throws<Exception>();
var value = this.optionsWrapper.Value;
@@ -36,12 +35,8 @@ public class UpdateableOptionsWrapperTests
[TestMethod]
public void UpdateOption_CallsOptionsManager()
{
this.optionsManagerMock
.Setup(u => u.UpdateOptions<string>(It.IsAny<string>()))
.Verifiable();
this.optionsWrapper.UpdateOption();
this.optionsManagerMock.Verify();
this.optionsManagerMock.ReceivedWithAnyArgs().UpdateOptions(Arg.Any<string>());
}
}