public async Task TestSearchThrows() { _autoMocker.MockLogError(); var publisherMock = new Mock <INodeFoundEventPublisher>(); publisherMock .Setup(m => m.RaiseNodeFoundEvent(Directory)) .Verifiable(); _autoMocker .Setup <IDirectoryService, IEnumerable <string> >(m => m.GetNodesRecursively(Directory)) .Returns(new[] { Directory }); _autoMocker .Setup <IDirectoryService>(m => m.GetDirectory(Directory)) .Throws <InvalidOperationException>(); var specification = new Mock <ISpecification <NodeModelBase> >(); Func <INodeFoundEventPublisher, Task> factory = null; _autoMocker .Setup <IRecursiveSearchResultFactory, IRecursiveSearchResult>(m => m.Create(It.IsAny <Func <INodeFoundEventPublisher, Task> >())) .Callback <Func <INodeFoundEventPublisher, Task> >(f => factory = f); var service = _autoMocker.CreateInstance <RecursiveSearchService>(); service.Search(Directory, specification.Object, default); Assert.NotNull(factory); await factory(publisherMock.Object); _autoMocker.VerifyLogError(Times.Once()); publisherMock .Verify(m => m.RaiseNodeFoundEvent(Directory), Times.Never); }
public void TestUnmountException() { _autoMocker .Setup <IProcessService>(m => m.Run(It.IsAny <string>(), It.IsAny <string>())) .Throws <InvalidOperationException>(); _autoMocker .Setup <IEnvironmentDriveService, IReadOnlyList <DriveInfo> >(m => m.GetMountedDrives()) .Returns(Array.Empty <DriveInfo>()); _autoMocker.MockLogError(); var service = _autoMocker.CreateInstance <LinuxMountedDriveService>(); service.Unmount("/media/camelot/test"); _autoMocker.VerifyLogError(Times.Once()); }
public async Task TestException() { _autoMocker .Setup <ICompositeOperation, Task>(m => m.RunAsync()) .Throws <InvalidOperationException>(); _autoMocker.MockLogError(); var machine = _autoMocker.CreateInstance <AsyncOperationStateMachine>(); await machine.RunAsync(); _autoMocker.VerifyLogError(Times.Once()); }
public void TestDirectoryRemove(bool throws, bool expected) { _autoMocker .Setup <IEnvironmentDirectoryService>(m => m.Delete(DirectoryName, true)) .Verifiable(); if (throws) { _autoMocker .Setup <IEnvironmentDirectoryService>(m => m.Delete(DirectoryName, true)) .Throws <InvalidOperationException>(); } _autoMocker.MockLogError(); var directoryService = _autoMocker.CreateInstance <DirectoryService>(); var actual = directoryService.RemoveRecursively(DirectoryName); Assert.Equal(expected, actual); _autoMocker .Verify <IEnvironmentDirectoryService>(m => m.Delete(DirectoryName, true)); _autoMocker.VerifyLogError(throws ? Times.Once() : Times.Never()); }
public async Task TestReloadWithException() { _autoMocker.MockLogError(); _autoMocker .Setup <IMountedDriveService>(m => m.ReloadMountedDrives()) .Throws(new InvalidOperationException()); var service = _autoMocker.CreateInstance <DrivesUpdateService>(); service.Start(); await Task.Delay(1500); _autoMocker .Verify <IMountedDriveService>(m => m.ReloadMountedDrives(), Times.AtLeastOnce); _autoMocker .Verify <IUnmountedDriveService>(m => m.ReloadUnmountedDrivesAsync(), Times.Never); _autoMocker.VerifyLogError(Times.AtLeastOnce()); }