Backend/e-suite.DependencyInjection.UnitTests/ESuiteModuleUnitTests.cs

59 lines
1.6 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Autofac;
using eSuite.Core.Clock;
using Moq;
using NUnit.Framework;
namespace e_suite.DependencyInjection.UnitTests;
[TestFixture]
public class ESuiteModuleUnitTests
{
[Test]
public void Load_CallsModuleDiscovery()
{
// Arrange
var mockDiscovery = new Mock<IModuleDiscovery>();
var module = new ESuiteModule(mockDiscovery.Object);
ContainerBuilder? capturedBuilder = null;
mockDiscovery
.Setup(d => d.RegisterAllModuleIocRegistrations(It.IsAny<ContainerBuilder>()))
.Callback<ContainerBuilder>(b => capturedBuilder = b);
var builder = new ContainerBuilder();
builder.RegisterModule(module);
// Act
builder.Build();
// Assert
mockDiscovery.Verify(
d => d.RegisterAllModuleIocRegistrations(It.IsAny<ContainerBuilder>()),
Times.Once);
Assert.That(capturedBuilder, Is.Not.Null);
}
[Test]
public void Load_RegistersUtcClockAsIClock()
{
// Arrange
var mockDiscovery = new Mock<IModuleDiscovery>();
// Dont let discovery do anything in this test
mockDiscovery
.Setup(d => d.RegisterAllModuleIocRegistrations(It.IsAny<ContainerBuilder>()));
var module = new ESuiteModule(mockDiscovery.Object);
var builder = new ContainerBuilder();
builder.RegisterModule(module);
// Act
var container = builder.Build();
var clock = container.Resolve<IClock>();
// Assert
Assert.That(clock, Is.InstanceOf<UtcClock>());
}
}