using System; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Moq; using NUnit.Framework; namespace MalwareMultiScan.Tests.Scanner { public class ScanHostedServiceTests { private Mock _busMock; private Mock _scanBackendMock; private IScanHostedService _scanHostedService; [SetUp] public void SetUp() { _busMock = new Mock(); _scanBackendMock = new Mock(); _scanBackendMock .SetupGet(x => x.Id) .Returns("dummy"); _scanHostedService = new ScanHostedService( Mock.Of>(), _scanBackendMock.Object, _busMock.Object); } [Test] public async Task TestBusReceiveScanResultMessage() { await _scanHostedService.StartAsync(default); _busMock.Verify( x => x.Receive("dummy", It.IsAny>())); } [Test] public async Task TestBusIsDisposedOnStop() { await _scanHostedService.StopAsync(default); _busMock.Verify(x => x.Dispose(), Times.Once); } } }